CS/Database

· CS/Database
sqld에선 이 정도만 알고있어도 충분한듯 정규화 - 데이터 정합성 (데이터의 정확성과 일관성을 유지)을 위해 엔터티를 작은 단위로 분리하는 과정 - 입력/ 수정/ 삭제의 이상현상(한 엔터티에 2개 이상의 종속성이 있을 때)을 제거 - 중복 속성 제거, 데이터 용량 최소화 제 1 정규형 - 모든 속성은 반드시 하나의 값만 가져야 한다. - 속성의 원자성 확보 제 2 정규형 - 엔터티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야 한다. = 완전 함수 종속 = 부분 함수 종속이 있으면 안된다. = 기본키의 부분 집합이 결정자가 되어선 안된다. 결정자? X -> Y인 함수적 관계를 성립시키는 X 함수적 관계? Y값이 오직 하나로 결정되는 관계 제 3 정규형 - 주식별자가 아닌 모든 속성간에 서로 종속..
· CS/Database
SET LINESIZE 150 SET PAGESIZE 30
· CS/Database
제약조건이란 사용자가 원하는 조건의 데이터만 유지하기 위해 테이블의 특정 칼럼에 설정하는 제약을 말합니다. 제약조건은 데이터베이스 테이블의 컬럼 또는 테이블 간의 관계에 대한 규칙 또는 조건을 정의하는 데 사용됩니다. 제약조건을 설정함으로써 데이터 무결성을, 일관성을 보장하고, 이용자로부터 데이터를 보호할 수 있습니다. 제약조건의 종류로는 PK, UK, NOT NULL, CHECK, FOREIGN KEY가 있습니다. 1. 고유키 (Unique Constraint): 컬럼의 값이 고유해야 한다는 규칙을 정의합니다. NULL값을 가지더라고 고유키 제약조건에 위배되지 않으며, NULL값을 여러개 가지더라도 괜찮습니다. 2. 기본 키 (Primary Key Constraint): 테이블 내에서 고유하고 식별 가..
· CS/Database
트랜잭션은 데이터베이스의 논리적인 연산 단위입니다. 논리적인 단위라는 것은 실제 해당 작업을 위해 몇단계가 걸리는지와 관련 없이 하나의 작업을 이야기 합니다. 논리적인 작업 단위를 구성하는 세부적인 연산들의 집합을 말합니다. 때문에 하나의 트랜잭션에는 하나 이상의 sql문장이 포함됩니다. 때문에 트랜잭션은 실제 데이터베이스를 조작하는데 몇 단계가 걸리든지 상관 없이, 해당 트랜잭션이 완전히 적용되거나, 아니면 모두 적용되지 않는 ALL 혹은 NOTING의 개념입니다. 이러한 트랜잭션의 특성을 원자성 이라고 합니다. 트랜잭션의 특성으로는 원자성, 일관성, 고립성, 지속성이 있는데요. 특히 원자성이 중요한 특성입니다. 모두 적용하거나 하나도 적용하지 않는다는 트랜잭션의 원자성은 커밋과 롤백으로 구현됩니다. ..
· CS/Database
함수 종속(FD: Functional dependency) 어떤 릴레이션 R에서 X와 Y를 각각 E의 어트리뷰트 집합의 부분 집합이라 하자. 어트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 어트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라 하고, X -> Y로 표기한다. 함수 종속(Functional Dependency)은 데이터베이스 시스템에서 특정한 조건을 만족하는 데이터 간의 관계를 정의하는 개념입니다. 데이터베이스에서는 주로 속성(Attribute)과 테이블(Table) 간의 함수 종속을 다룹니다. 이때, 속성은 데이터베이스의 열(Column)을 나타내고, 테이블은 데이터베이스의 표(Table)를 나타냅니다. 예를 들어, 학생 정보 데이터베이스를 가정해 봅시다. 여..
· CS/Database
데이터베이스에서 테이블의 수평 분할과 수직 분할은 데이터베이스 설계 및 관리에서 중요한 개념입니다. 이 두 가지 분할 방법은 데이터를 효율적으로 저장, 관리 및 검색하기 위해 사용됩니다. 다음으로 각 분할 방법에 대해 알아보겠습니다: 1. 수평 분할 (Horizontal Partitioning) 수평 분할은 테이블을 행(row) 기반으로 분할하는 것을 의미합니다. 이 방법은 주로 대량의 데이터를 가진 테이블을 관리하고 성능을 향상시키는 데 사용됩니다. 수평 분할의 주요 특징은 다음과 같습니다: - 로우 기반 분할: 특정 기준에 따라 테이블의 로우(행)들을 분할합니다. 예를 들어, 날짜 기준으로 로그 데이터를 월별로 분할할 수 있습니다. - 데이터 관리: 각 파티션은 별도의 물리적 테이블로 저장됩니다. 각..
· CS/Database
데이터베이스에서의 투명 데이터베이스에서 "투명성(transparency)"은 사용자나 응용 프로그램에게 데이터베이스 시스템의 내부 동작 및 구조를 숨기는 개념을 나타냅니다. 이것은 데이터베이스 시스템을 사용하는 사람들이 데이터를 쉽게 액세스하고 조작할 수 있도록 도와주는 중요한 개념입니다. 따라서 분산 데이터베이스에서 투명성을 유지한다는 것은 분산데이터베이스를 중앙집중식데이터베이스처럼 사용하도록 하겠다는 의미입니다. 분산 데이터베이스의 투명성 분산 데이터베이스 시스템은 여러 노드 또는 위치에서 데이터를 저장하고 관리하는 환경에서 데이터의 일관성과 효율성을 유지하는 데 중요합니다. 이러한 목표를 달성하기 위해 분산 데이터베이스는 다양한 투명성 유형을 제공합니다. 아래에서는 분산 데이터베이스를 위한 여섯 가..
· CS/Database
데이터베이스 시스템에서 동시성과 병행 제어는 중요한 개념입니다. 동시성 (Concurrency) 데이터베이스 시스템에서 여러 사용자가 동시에 데이터에 접근하고 작업할 수 있는 능력을 말합니다. 동시성은 데이터베이스의 효율성과 성능을 향상시키는 중요한 특징입니다. 여러 사용자가 동시에 작업할 때, 데이터 일관성과 무결성을 보존하려면 병행 제어가 필요합니다. 병행 제어 (Concurrency Control) 병행 작업 중에 데이터 일관성을 유지하고 데이터베이스의 무결성을 보호하기 위한 메커니즘입니다. 병행 작업이 충돌하지 않도록 하고, 데이터베이스 시스템이 여러 작업을 동시에 수행할 수 있도록 도와줍니다. 병행 제어는 다음과 같은 주요 기술을 포함합니다: - Locking (잠금): 데이터베이스에서 데이터 ..
· CS/Database
Entity (엔터티), Attribute (속성) 직사각형의 상단에 entity의 이름을 표기하고, 그 아래에 attribute의 이름을 작성합니다. 해당 attribute가 PK, FK일 경우 좌측에 표기해줍니다. Relation (관계) relation은 다음과 같은 기호들로 나타냅니다. 실선과 점선 실선은 식별 (Identifying) 관계를 나타냅니다. 식별 관계란 부모 entity 의 기본키 또는 유니크키를 자식 entity 의 기본키로 사용하는 관계를 말합니다. 즉, 자식 entity 는 부모 Entity 가 존재해야 존재할 수 있습니다. 점선은 비식별 (Non-Identifying) 관계를 나타냅니다. 비식별 관계란 부모 entity 의 기본키 또는 유니크키를 자식 entity 에서 외래키..
· CS/Database
Joins Join 절은 둘 이상의 테이블 간에 관련된 열을 기준으로 행을 결합하는 데 사용됩니다. (inner) join 두 테이블 모두에 일치하는 값이 있는 레코드를 반환합니다 left (outer) join 왼쪽(driving) 테이블에서 모든 레코드를 반환하고, 오른쪽 테이블에서 일치하는 레코드를 반환합니다 right (outer) join 오른쪽(driven) 테이블에서 모든 레코드를 반환하고, 왼쪽 테이블에서 일치하는 레코드를 반환합니다 full (outer) join 왼쪽 또는 오른쪽 테이블에 일치하는 레코드가 있을 때 모든 레코드를 반환합니다 employees, dept_emp, departments 조인 총 세 개의 테이블을 합치기 위해서 2회의 조인을 해야합니다. select * fro..
· CS/Database
기본적으로 SQL은 대소문자를 구분하지 않습니다 DML, DDL, DCL, DTL 명령어 종류 설명 명령어 DML (Data Manipulation Language) 레코드에 대한 CRUD select insert update delete DDL (Data Definition Language) 스키마에 대한 CRUD create alter drop rename truncate DCL (Data Control Language) 데이터베이스 접근에 대한 권한 추가/삭제 grant revoke DTL (Data Transactional Language) 트랜잭션 commit rollback savepoint Select Select 명령어는 데이터베이스에서 데이터를 선택하기 위해 사용됩니다. 반환되는 데이터는..
· CS/Database
명령 프롬프트에서 MySql을 실행하는 과정을 적어보도록 하겠습니다. MySQL 실행 미리 다운로드 해놓은 데이터베이스 파일을 사용하도록 하겠습니다. 데이터가 저장된 경로를 복사하여 cmd 상에서 디렉토리를 이동하도록 하겠습니다. cd 데이터베이스파일저장경로 아래와 같이 MySQL이 설치된 경로를 찾아 복사합니다. cmd에서 "경로" -uroot -p 를 입력해준 후, 설정(MySQL 설치시 설정)한 패스워드를 입력합니다. "경로" -u root -p 외부의 sql 파일을 실행하는 source 명령어를 사용해 실행합니다. source 파일이름 show 명령어를 이용해 데이터베이스 목록을 확인해보겠습니다. show databases; use 명령어를 통해 employees 데이터베이스를 사용하도록 해보겠습..
· CS/Database
출처 : 『혼자 공부하는 SQL』 (우재남, 한빛미디어) 관련 중요 용어 영어 한글 약자 설명 data 데이터 단편적인 정보 table 테이블 데이터를 입력하기 위한 표 형태, DBMS의 최소단위 Database 데이터베이스 DB 데이터의 저장소 Database Management System 데이터베이스 관리 시스템 DBMS 데이터베이스를 관리하는 시스템 또는 소프트웨어(MySQL) column, field 열(컬럼, 필드) 테이블의 세로. 테이블은 여러 개의 열로 구성됨 column name, field name 열 이름 각 열을 구분하기 위한 이름 data type 데이터 형식 열에 저장될 데이터의 형식(숫자/문자/날짜 등) row, record 행(로우, 레코드) 테이블의 가로. 실질적인 진짜 데..
· CS/Database
출처 : 『혼자 공부하는 SQL』 (우재남, 한빛미디어) DBMS 제작사 작동 운영체제 기타 MySQL Oracle Unix, Linux, Windows, Mac 오픈 소스(무료), 상용 MariaDB MariaDB Unix, Linux, Wundows 오픈 소스(무료), MySQL 초기 개발자들이 독립해서 만듦 PostgreSQL PostgreSQL Unix, Linux, Windows, Mac 오픈 소스(무료) Oracle Oracle Unix, Linux, Windows 상용 시장 점유율 1위 SQL Server Microsoft Windows 주로 중/대형급 시장에서 사용 DB2 IBM Unix, Linux, Windows 메인프레임 시장 점유율 1위 Access Microsoft Windows ..
hye2021
'CS/Database' 카테고리의 글 목록