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)

 

 

사용한 책 : 데이터베이스 설계 및 구축