coding base/DataBase
[DB] 관계형 데이터베이스
ddo04
2024. 4. 5. 01:36
관계형 데이터베이스 모델
- 사용자 입장에서 보았을 때 데이터가 어떤 모형으로 표현되고 관리되는가에 따라 데이터베이스 분류
1. 계층형 모델
2. 네트워크 모델
3. 관계형 모델
- 최근
1. 객체지향 모델
2. 객체- 관계형 모델
이 발표되었으나 상용 DBMS 제품에서 관계형 데이터베이스 모델이 압도적으로 많이 사용되고 있음
- 관계형 데이터베이스의 특징은 데이터가 테이블 형태로 표현되고, 사용자가 데이터를 쉽게 다룰 수 있도록 해주는 질의어가 제공
- SQL은 자연어에 가까운 문법을 가지고 있어 배우기 쉽고, 어떤 데이터를 원하는지만 기술해주면 되기에 사용자나 개발자 입장에서는 데이터를 다루는 작업이 단순해짐
- SQL 명령어나 문법은 표준화되어 있어 대부분 명령어는 모든 관계형 데이터베이스 제품에서 공통적으로 사용 가능
- 데이터베이스 설계는 방법론에 따라 달라질 수 있음
- 현재까지 관계형 데이터베이스 제품이 주류 이루고 있으므로 관계형 모델에 기초한 방법론을 따르도록 함
- 관계형 데이터베이스 설계가 익숙해지면 객체지향 데이터베이스의 설계 개념에 대해 쉽게 이해 가능
- 관계형 데이터베이스를 설계할 수 있기 위해 관계형 모델의 개념을 이해하고 있어야 함
관계형 데이터베이스 용어
릴레이션 (relation)
- 테이블이라고 지칭했던 것으로 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본단위\
- 릴레이션들은 서로 구분할 수 있는 이름을 가지며 동일한 데이터베이스 내 같은 이름을 가진 릴레이션이 존재할 수 없음
- 데이터베이스는 많은 수의 릴레이션들을 포함
속성 (attribute)
- 하나의 릴레이션은 현실세계의 어떤 개체를 표현하고 저장하는 데 사용되며, 표현할 개체의 구체적인 정보 항목에 해당하는 것
- 고유한 이름을 가지며 동일 릴레이션 내 같은 이름의 속성 존재 불가
- 릴레이션이 다르면 같은 속성 이름을 공통으로 사용 가능
도메인 (domain)
- 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합
- 개념이 필요한 이유는 릴레이션에 저장되는 데이터 값들이 본래 의도했던 값만 저장되고 관리되도록 하는 데 있음
- 이름은 속성 이름과 같은 수도 있고 다를 수도 있음
- 하나의 도메인을 여러 속성에서 공유 가능
- 도메인의 유용성에도 불구하고 본래 관계형 모델에서 의도했던 도메인 개념을 100% 구현하고 있는 DBMS 제품은 없음
- 특정 속성에서 대해 그 속성과 관련 없는 값이 들어오는 것을 완벽하게 막을 수 있는 방법 없음
- DBMS 제품들이 기본적으로 제공하는 방법은 각 속성에 대해 데이터 타입과 길이를 미리 지정하여 맞는 값들이 들어오도록 하는 것과, 데이터 값의 범위 지정하여 맞는 값만 저장되도록 하는 것
- 릴레이션, 튜플, 속성 등 용어는 과거에 파일 시스템 사용하던 개발자들이 사용했던 용어와 다르고, 일반 사용자에게 익숙하지 않기에 상용 DBMS 제품이 일반화되면서 보다 쉬운 용어 등장
- 현재 용어가 혼용되고 있기에 이름은 다르지만 유사 개념인 용어들을 알고 있는 것이 필요
E.F.Codd 용어 | File 시스템 용어 | 자주 사용되는 용어 |
릴레이션 (relation) | 파일(file) | 테이블(table) |
속성 (attribute) | 필드(field) | 열(column), 컬럼 |
튜플 (tuple) | 레코드(record) | 행(row) |
사용한 책 : 데이터베이스 설계 및 구축