데이터베이스 기초

2023. 3. 29. 01:43Database Management

1. DBMS 기초 용어

1.1. DBMS(Database Management Service):

- 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것

- DBMS가 설치되어 데이터를 가진 쪽을 서버(server), 외부에서 데이터 요청하는 쪽을 클라이언트(client)라고 함

1.2. 관계형 데이터베이스: 여러 개의 테이블이 특정 관계로 이루어져 있는 구조를 가진 데이터 베이스를 의미

1.3. entity: 독립적으로 전재하며 고유한 실세계의 개체

1.4. entity set(엔티티 집합): 동일 속성을 가진 엔티티들의 집합으로, 엔티티는 여러 개의 엔티티 집합에 소속될 수 있음

1.5. schema(스키마): 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

- 외부 스키마(사용자 관점): 각 사용자 생각에서의 데이터베이스 모습으로, 하나에 데이터베이스에 여러 개가 존재할 수 있음

- 개념 스키마(조직 전체 관점): 저장되는 객체, 객체 간의 관계 및 제약 조건, 접근 권한, 보안 등을 정의힌 것으로, 하나의 데이터베이스에 하나만 존재 가능

- 내부 스키마(저장 장치 관점): 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의

1.6. table 용어

- relation: 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위

- attribute: 테이블의 field, column

- tuple: 테이블의 record, row

- domain: atrribute가 가질 수 있는 값의 집합

- degree: attribute의 개수

- cardinality: tuple의 개수

 

2. SQL 언어 분류

2.1. 데이터 조작어(DML - Data Manipulation Language)

- 정의: 저장된 데이터를 실질적으로 처리하는데 사용되는 언어

- 종류: 데이터 삽입(insert), 데이터 갱신(update), 데이터 삭졔(delete)

2.2. 데이터 정의어(DDL - Data Definition Language)

- 정의: 데이터베이스를 정의하는 언어

- 종류: 테이블 생성(create), 테이블 삭제(drop), 테이블 변경(alter)

2.3. 데이터 제어어(DCL - Data Control Language)

- 정의: 데이터베이스에 접근하거나 객체에 권한을 주는 언어

- 종류: 권한 부여(grant), 권한 회수(revoke)

 

3. key

3.1. Super Key

- Super Key: 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합

- Candidate Key(후보키): 투플을 유일하게 식별할 수 있는 속성의 최소 집합으로, 기본키가 되지 않은 후보키는 대체키가 됨

- Primary Key: 여러 후보키 중 대표가 되는 키로, 릴레이션 스키마 표현 시 밑줄을 그음. 후보키가 여러 개일 경우 기본키 선정 시 다음과 같은 사항을 고려

ㅇ투플 식별이 가능한 고유값을 보유

Not Null

ㅇ키 값의 불변

ㅇ최대한 적은 수의 속성

- 대리키(Surrogate Key): 복잡하고 보안이 요구되거나, 기본키 미존재 시 가상의 속성을 만들어 기본키로 사용될 때 사용되는 속성을 일컬음

- 외래키(Foreign Key): 다른 릴레이션의 기본키를 참조하는 속성으로, 릴레이션의 관계를 표현

 

4. 무결성 제약조건

4.1. 개념

- 무결성: 데이터를 정확하고 일관되게 유지하는 것

- 무결성 제약조건: 무결성 보장을 위해 데이터의 저장, 삭제 수정 등을 제약하기 위한 조건

4.2. 종류

- 개체 무결성 제약조건(기본키 제약조건 - Primary Key Constraint):

각 테이블의 기본키를 구성하는 속성은 Null과 중복을 허용하지 않음

- 참조 무결성 제약조건(외래키 제약조건 - Foreign Key Constraint):

외래키 컬럼의 값은 Null이거나 참조하는 부모 테이블 컬럼 값과 일치해야 함

- 도메인 무결성 제약조건(Domain Constraint):

속성 안에 들어가는 값은 정의된 도메인에 속한 값이어야 함

- 고유 무결성 제약조건(Unique Constraint): 속성의 값은 Null이거나 서로 달라야 함

 

5. index

5.1. 정의: 레코드의 신속한 식별을 위해 별도로 만든 자료로, B-Tree 형태로 만들어짐

5.2. 논클러스터(Non Cluster) 방식: 데이터의 목록과 B-tree를 별도로 만드는 방식으로, 레코드 추가가 빠르나, 검색이 느림

5.3. 클러스터 방식: B-Tree에 데이터를 바로 정렬하는 방식으로, 레코드 추가가 느리나, 검색이 빠르고, key의 개수와 상관없이 테이블 당 하나만 생성

 

 

참고자료: 데이터베이스 강의 - 김영진 교수님