SQL 이론 정리 (1)
목차
1. 데이터베이스와 DBMS
2. 릴레이션의 특징
3. 키(Key)의 개념
4. 무결성 제약 조건
5. 기타 참고 사항
1 . 데이터베이스와 DBMS
- 데이터베이스(Database): 논리적으로 연관된 데이터를 구조적으로 통합해 놓은 집합.
- DBMS(Database Management System): 데이터를 효율적으로 정의, 저장, 검색, 수정, 삭제하는 시스템.
- 데이터는 기존에는 파일(file)로 저장했지만, 현재는 데이터 모델 기반으로 관리됨.
데이터 모델의 대표 예시
- 관계형 데이터 모델(RDB: Relational DataBase)→ 각각의 행(Row)은 하나의 레코드(투플), 열(Column)은 속성을 나타냄
2 . 릴레이션의 특징
관계형 데이터 모델의 기본 단위인 릴레이션(Relation)은 다음과 같은 특징을 가진다.
- 속성은 단일 값을 가진다
- 하나의 셀에는 하나의 값만 존재해야 한다. 예: 주소 = 서울 (O), 주소 = 서울, 부산 (X)
- 속성은 서로 다른 이름을 가진다
- 하나의 릴레이션 내에서 속성명(열 이름)은 중복될 수 없다.
- 속성의 값은 동일한 도메인 값만 가진다
- 특정 속성의 값은 모두 동일한 데이터 유형(도메인)을 따라야 한다.
- 속성의 순서는 상관없다
- (이름, 주소)나 (주소, 이름)은 동일한 릴레이션 구조로 간주됨.
- 릴레이션 내 중복된 투플은 허용되지 않는다
- 모든 행은 유일해야 하며, 동일한 값을 가지는 두 행은 존재할 수 없다.
- 투플의 순서는 상관없다
- 데이터의 삽입, 삭제, 갱신에 따라 순서는 달라질 수 있으며 의미는 없다.
3 . 키(Key)의 개념
Key?
- 릴레이션 내에서 각 투플(행)을 유일하게 식별하기 위해 사용하는 속성 또는 속성의 집합.
- 키는 중복된 투플을 방지하며, 릴레이션 간의 관계를 맺을 때도 사용됨.
Key의 종류
| 슈퍼키(Super Key) |
투플을 유일하게 식별할 수 있는 모든 속성 집합 |
| 후보키(Candidate Key) |
슈퍼키 중 최소 속성 집합 |
| 기본키(Primary Key) |
후보키 중 하나를 대표로 선택한 키 (NULL, 중복 불가) |
| 대체키(Alternate Key) |
기본키로 선택되지 않은 후보키 |
| 대리키(Surrogate Key) |
의미 없는 일련번호 등 시스템에서 생성한 인조 키 |
| 외래키(Foreign Key) |
다른 릴레이션의 기본키를 참조하는 속성 |
외래키는 참조 릴레이션의 기본키와 도메인이 같아야 하며, 값이 변경되면 연쇄적으로 영향을 받는다.
4 . 무결성 제약 조건
데이터의 정확성과 일관성을 보장하기 위해 무결성 제약조건이 사용된다.
| 구분 |
도메인 무결성 |
개체 무결성 |
참조 무결성 |
| 대상 |
속성 |
투플(기본키) |
속성 및 투플(외래키) |
| 동일 용어 |
Domain Constraint |
Primary Key Constraint |
Foreign Key Constraint |
| NULL 허용 |
허용 |
불가 |
허용 |
| 제약 개수 |
속성 수와 동일 |
1개 |
0~여러 개 |
| 특징 |
도메인 정의 우선 확인 |
기본키 중복/NULL 불가 |
부모 릴레이션 존재 확인 |
예시
- 개체 무결성 위반: 동일한 기본키 값을 가진 투플 삽입 시 거부
- 참조 무결성 위반: 존재하지 않는 외래키 값을 참조하는 경우 삽입/수정 불가
기타 참고 사항
- MySQL Workbench는 단순 클라이언트 앱이며, 접속을 위해 계정과 주소가 필요하다.
- 예시로 사용된 계정은 cool, 데이터베이스는 project, 샘플 테이블에는 project_dept.sql, project_emp.sql 등이 포함된다.