[DB] DBMS란? / ERD 다이어그램 / 관계 데이터 모델

2024. 11. 27. 20:28· CS/DB
목차
  1. DBMS
  2. ERD 다이어그램 
  3. 관계 데이터 모델
  4.  
728x90

DBMS

DBMS란?

: 모든 프로그램들이 데이터베이스를 공유할 수 있도록 관리해주는 소프트웨어

  • 응용 프로그램과 데이터베이스의 중재자
  • 응용 프로그램과 데이터 간에 상호 의존 관계 문제를 해결

DBMS 필수 기능

어떤 DB 서버 프로그램을 쓰던지 이 기능은 무조건 있다.

 

1. 정의 (DDL)

  • 데이터의 형태, 구조, 데이터를 저장하는 것에 관한 내용
  • CREATE, ALT, DROP

2. 조작 (DML)

  • 데이터를 조작(검색, 갱신, 삽입, 삭제)
  • SELECT, INSERT, DELETE, UPDATE

3. 제어 (DCL)

  • 데이터의 정확성과 안전성을 유지하는 기능
  • GRANT, REVOKE

 

스키마

  • DB의 구조에 대한 정의 및 제약 조건 등을 기술한 것
  • 서버 프로그램마다 다를 수 있다
  • 형식, 구조를 갖춰서 저장한다.

 

DB 설계 과정

요구 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현

보통 개발자들은 물리적 설계 단계부터 함 

 


ERD 다이어그램 

ERD : 현실 세계를 개체와 개체 사이의 관계를 이용해서 개념적 구조로 표현한 것

개체는 사각형으로, 속성은 동그라미로, 개체 간 관계는 다이아몬드로 표시한다.

 

요구사항 작성 후 요구사항에 대해 ERD를 작성하는데, 이때 요구사항은 한 문장으로 작성한다.

  • ex) 학생은 강의를 수강할 수 있다.
  • 명사는 개체(학생, 강의), 동사는 관계(수강한다)

 

개체 간 관계

관계 선택적 참여 필수적 참여
1:1
1:N
N:M

 

1:1 관계

  • 하나와 하나로만 이루어질 수 있는 관계 
  • ex) 회원 - 장바구니 (내 장바구니를 다른 회원이 이용 못함, 나는 하나의 장바구니만 이용 가능)

1:n 관계

  • ex) 회원 - 게시글 (한 명의 회원이 여러 개를 쓸 수 있음, 하나의 게시글이 여러 회원에 의해 쓰일 수 없음) 

n:m 관계

  • ex) 학생 - 수업 (한 학생은 여러 개의 수업을 들을 수 있음, 하나의 수업을 여러 학생이 들을 수 있음)

 


관계 데이터 모델

: DBMS 종류 중 하나 (계층, 네트워크, 관계)

: 현실 세계의 모든 데이터를 논리적인 릴레이션(표) 구조로 구성한 것

 

관련 용어

  • 릴레이션 : 정보 저장의 형태. 2차원 구조의 테이블
  • 속성 : 테이블의 각 열
  • 튜플 (레코드) : 테이블의 한 행을 구성하는 속성들의 집합
  • 도메인 : 속성이 취할 수 있는 값들의 집합
  • 기수 (Cardinality) : 튜플의 수 = 행의 수
  • 차수 (Degree) : 속성의 수
idx name age
1 kim 20
2 park 30

 

ex)

  • 릴레이션 = 표 전체
  • 속성 = idx, name, age
  • 튜플 = (1, kim, 20) 한 줄
  • 도메인 = kim, park
  • 기수 : 2
  • 차수 : 3

 

릴레이션 특징

: 데이터들을 저장할 때 제약 조건

 

1. 특정 릴레이션은 오직 하나의 레코드 타입만 저장 

  • 하나의 표에는 무조건 관련된 것만 저장

 

2. 하나의 속성 안에 있는 값들은 모두 같은 유형으로 저장해야된다

  • ex) 20, 30, 마흔 -> 안됨

 

3. 속성들의 순서는 중요하지 않다.

  • ex) idx, name, age / name, age, idx

 

4. 각 속성의 이름은 한 릴레이션 내에서만 고유하다.

  • 한 릴레이션에 동일한 이름의 애트리뷰트가 두 개 이상 존재할 수 없다.
  • 다른 릴레이션에서는 존재가 가능하다.
  • ex) board - idx, student - idx 다른 표에서 똑같은 속성 만들어도 됨

 

5. 릴레이션에서 동일한 튜플이 두 개 이상 존재하지 않는다.

  • ex) 1, kim, 20 => 두 개 이상 존재할 수 없음

 

6. 한 튜플의 각 속성은 원자 값(제일 작은 값)을 가진다

  • 값에 리스트나 집합 등은 허용되지 않는다.
  • ex) 취미 - 영화, 책 => 이러면 안 됨. 무조건 하나가 되어야 한다.

 

 

키의 종류

키 : 다른 릴레이션(표)들과 관계를 맺어주는 것

 

1. 슈퍼키

  • 유일성은 갖지만, 최소성은 만족시키지 못하는 속성의 집합
  • 모든 행을 구분할 수 있는 속성
  • ex) name이라는 속성만 가지고 모든 행을 구분할 수 없음, idx는 모든 행 구분하기 때문에 유일성을 가진다.

2. 후보키

  • 유일성과 최소성을 모두 갖는 속성의 집합
  • 유일하면서 최소한의 속성 개수

3. 기본키 (PK)

  • 후보키 중 하나를 정한 것
  • 개체 식별자. 튜플을 유일하게 식별할 수 있는 속성

4. 대체키

  • 후보키에서 기본키를 뺀 나머지. 기본키를 제외한 후보키

5. 외래키

  • 테이블과 테이블 사이에 관계를 맺어줄 때 기본키를 참조하는 값

 

데이터 무결성 제약 조건

개체 무결성

  • 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL과 중복을 허용하지 않는다.
  • 기본키가 없이 데이터를 저장할 수 없다.
  • 기본키가 중복이 되면 안 된다.

참조 무결성

  • 외래키 값은 null이거나, 참조하는 릴레이션에 있는 기본키이다.

도메인 무결성

  • 특정 속성의 값은 그 속성에 정의된대로의 값만 허용한다.

 

 

ERD -> 릴레이션 변환 과정 규칙 (사상 규)

  • 개체는 하나의 릴레이션으로 변환한다.
  • N : M 관계는 하나의 릴레이션으로 변환한다.
  • 1 : N 관계는 외래키 속성으로 표현한다.
    • N 측에 있는 릴레이션에 외래키가 있어야 한다.
  • 1 : 1 관계는 외래키 속성으로 표현한다.
  • 다중 값 속성은 다른 릴레이션으로 변환한다.

 

user_has_product 

=> user와 product가 N:M 관계이기 때문에 가운데 관계에 대한 릴레이션이 생성됨

728x90
저작자표시 비영리 변경금지 (새창열림)

'CS > DB' 카테고리의 다른 글

[DB] SQL 문법  (1) 2024.11.29
[DB] 워드프레스 서버 - DB 서버 연동 실습  (1) 2024.11.28
[DB] SQL 연습 (윈도우 MySQL Workbench)  (0) 2024.11.28
[DB] 정규화란? / 정규화 과정  (0) 2024.11.27
[DB] 데이터베이스란? / DB 서버 실습 (윈도우 클라이언트 - 리눅스 서버 연동)  (0) 2024.11.27
  1. DBMS
  2. ERD 다이어그램 
  3. 관계 데이터 모델
  4.  
'CS/DB' 카테고리의 다른 글
  • [DB] 워드프레스 서버 - DB 서버 연동 실습
  • [DB] SQL 연습 (윈도우 MySQL Workbench)
  • [DB] 정규화란? / 정규화 과정
  • [DB] 데이터베이스란? / DB 서버 실습 (윈도우 클라이언트 - 리눅스 서버 연동)
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • 리눅스
  • web
  • 알고리즘
  • 회고
  • 트리
  • 실습
  • Java
  • spring boot
  • 우선순위 큐
  • 구현
  • cs
  • DP
  • vue
  • 백준
  • 그리디
  • 자료구조
  • 프로그래머스
  • fe
  • dfs
  • js
  • AWS
  • 백트래킹
  • 주간회고
  • 네트워크
  • 오블완
  • bfs
  • db
  • be
  • Gateway
  • 티스토리챌린지

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[DB] DBMS란? / ERD 다이어그램 / 관계 데이터 모델
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.