철학과 학생의 개발자 도전기
DBMS와 RDB의 키 본문
데이터베이스
- 여러 사람이 공유하고 사용할 목적으로 관리되는 데이터 모음
- 데이터 공유 : 많은 사람들이 데이터를 공유할 수 있다.
- 중복의 제거 : 데이터를 한 곳에 모으면서 중복되는 데이터를 제거할 수 있다.
- 데이터 통합 : 흩어져 있는 데이터를 한 곳에 모을 수 있다.
- 보안성 : 권한이 있는 관리자가 데이터를 관리하여 데이터의 보안을 지킬 수 있다.
DBMS (Data Base Management System)
- DB를 관리하고 운영하는 소프트웨어
- 응용프로그램들이 DB에 접근할 수 있는 인터페이스를 제공
- 복구 및 보안 기능 등을 제공
DBMS의 장점
- 자료의 통합성을 증진시키고 데이터의 접근을 용이하게 해준다.
- 데이터의 통제가 쉬워지고 애플리케이션을 쉽게 개발하고 관리할 수 있다.
- 중복되는 데이터를 최대한 없애고 쉽게 정리해서 유지보수가 쉬워진다.
- 장애 발생시 회복이 가능하고 표준화가 가능하다.
DBMS의 종류
DBMS 종류 | 설명 | |
Oracle | 오라클에서 만들어 판매중인 상업용 RDBMS입니다. 주로 대기업에서 사용하며 글로벌 DB시장에서 점유율 1위를 하고 있습니다. |
|
MySQL | 현재는 오라클에 흡수합병 되었습니다. 예전에는 오픈소스로 이루어져 있던 무료 프로그램이지만 합병 이후에는 상업용으로 쓰입니다. |
|
SQL Server | 마이크로소프트사에서 개발한 상업용 RDBMS | |
MSSQL | 마이크로소프트가 1989년 사이베이스(Sybase)를 기반으로 개발한 RDBMS | |
MariaDB | 오픈 소스의 RDBMS | |
Tibero | 기업 비즈니스 구현의 기반이 되는 DBMS |
DBMS의 분류
- 계층형: 폴더와 파일 등의 계층 구조로 하드 디스크 등에서 사용
- 관계형: 행과 열을 가진 표 형태로 데이터를 관리하며, SQL을 사용해서 데이터 조작 가능
- NoSQL: key-value 형태로 데이터를 관리하며, 관계형과 달리 스키마나 join이 없음
관계형 데이터베이스
릴레이션(Relation)
- 관계형 데이터 모델에서 하나의 개체에 관한 데이터를 저장하기 위한 구조 ( = 테이블)
- 스키마와 인스턴스로 이루어져있다.
릴레이션 스키마(Schema)
- 릴레이션의 이름, 각 속성의 이름, 타입, 도메인 등을 정의하는 개념
릴레이션 인스턴스(Instance)
- 릴레이션에 저장되는 데이터(튜플)의 집합
속성(Attribute) / 필드
- 릴레이션의 열(Column)
- 서로 다른 이름을 가져야 한다.
튜플(Tuple) / 레코드
- 릴레이션의 행(Row)
- 중복되면 안된다.
도메인(Domain)
- 릴레이션의 속성이 가질 수 있는 원자값들의 집합
차수(Degree)
- 하나의 릴레이션에서 속성의 전체 개수
Cardinality
- 하나의 릴레이션에서 튜플의 전체 개수
Key
- 릴레이션의 튜플을 식별할 수 있는 단일 속성 혹은 속성들의 집합
- 테이블 내 튜플을 식별해주고 테이블 간의 관계를 설정 및 식별할 수 있다.
- 유일성과 최소성에 따라 나눌 수 있다
1. 슈퍼 키
- 유일성 O, 최소성 X
- ex) 주민번호 + 학번
2. 후보 키
- 유일성 O, 최소성 O
- ex) 주민번호, 학번
3. 기본 키 (PK)
- 후보 키에서 선택받은 키
- null 값을 가질 수 없다.
- 값이 자주 변경되는 경우, 기본 키로 부적합하다.
4. 대체 키
- 후보 키에서 선택받지 못한 키
5. 외래 키 (FK)
- 다른 릴레이션의 기본 키를 참조하는 키
- 릴레이션 간의 관계를 나타내기 위해 사용
- ex) 학생은 학교의 기본 키를 외래 키로 가질 수 있다.