Carnival7
Change Developer
Carnival7
전체 방문자
오늘
어제
  • 분류 전체보기
    • 자바의 정석
    • 프로그래밍 언어별 tools
      • 파이썬
      • 자바
    • 코딩 테스트
      • 백준 강의 기초편
      • 백준 강의 연습편
      • 백준 강의 문제편
      • 삼성 기출
      • 백준 - 일반
      • 카카오 기출
      • 프로그래머스 - 일반
      • 코테 풀이 Tools
    • CS
      • Network
      • 운영체제
      • 알고리즘
      • DB
    • Web_Backend
      • Spring
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • DevOps
    • IT 업무 지식
      • 인프라
      • 클라우드
    • 자격증
      • AWS - CLF
      • 정처기 - 실기
    • 생각 정리

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 슬라이딩 윈도우 #덱
  • 스프링 #인터셉터 #AOP #필터
  • 알고리즘 #백준강의기초편 #코딩테스트
  • ci/cd
  • nginx
  • 스프링 부트 무중단 웹 서비스
  • 삼성기출 #2023 #상반기
  • Github Actions
  • code deploy
  • DMZ
  • 코딩테스트 #삼성기출 #구현 #시뮬레이션
  • DevOps
  • 삼성기출 #백준강의문제편
  • 스프링 #AOP
  • 슬라이딩 윈도우
  • 프로그래머스 #카카오기출 #레벨2

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Carnival7

Change Developer

CS/DB

관계형 데이터베이스

2021. 12. 28. 13:49

관계형 데이터베이스


목차

  1. 관계형 데이터 베이스
  2. 관계의 종류

관계형 데이터베이스


관계형 데이터베이스란

관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.

관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.

이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다.

현재 많이 사용되는 관계 데이터 모델 DBMS는 Oracle, MySQL, SQL Server 등이 있다.


관계형 데이터베이스 특징

  1. 데이터의 분류, 정렬, 탐색 속도가 빠르다.
    1. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 준다.
    2. 기존에 작성된 스키마를 수정하기가 어렵다.
    3. 데이터베이스의 부하를 분석하는 것이 어렵다.

관계형 데이터베이스 용어

enter image description here


1. column (열) : 각 열은 고유의 이름을 가지고 있으며, 데이터의 타입 또한 정해져 있다. 타입의 종류로는 INTEGER, _TEXT, DATE, _ 등이 있다. 필드(field) 또는 속성(attribute) 라고 불리기도 한다.

2. row (행) : 서로 관계가 있는 데이터의 모음을 의미한다. 동일 테이블의 모든 row는 같은 수의 column을 가지고 있어야 한다. 튜플(tuple) 이나 레코드(record) 라고도 불린다.

3. value (값) :각 행과 열에 해당하는 특정 데이터값을 의미한다.

4. 키(key) : 테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 합니다.

즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미합니다.

5. schema : 데이터베이스 설계의 기본으로, 해당 테이블에 어떤 종류의 값이 들어가는지를 정의한다.
위의 테이블의 스키마는 아마 아래와 같이 될 것이다.

{게시글 번호: int, 작성자: TEXT, 작성자 id: TEXT, 작성 시간: DATE, 조회수: int}

관계(relationship)의 종류


관계형 데이터베이스는 엔티티끼리 관계를 맺을 수 있어서 관계형 DB라고 말한다.

엔티티 Entity
- 데이터의 집합. 저장되고, 관리되어야 하는 데이터.
- 유형, 무형의 객체로서 서로 구별되는 것.

관계(relationship) 는 두 엔티티가 서로 관련이 있을 때를 말한다.
테이블과 테이블 사이의 관계는 다음과 같다.

1. 일대일(one-to-one) 관계 (1:1)


enter image description here


하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우. (반드시 단 하나의 관계를 갖는다.)

  • 1:1 관계는 자주 사용하지 않는다.

2. 일대다(one-to-many) 관계 (1:N)

enter image description here


하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우.

  • 1:N(일대다) 관계는 관계형 데이터베이스에서 가장 많이 사용한다.

  • 1:N 관계는 N:M관계처럼 새로운 테이블(조인 테이블)을 만들지 않는다.


3. 다대다(many-to-many) 관계 (N:M)

enter image description here

여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우.

  • N:N(다대다) 관계를 위해 스키마를 디자인할 때에는, Join 테이블을 만들어 관리한다.
  • 1:N(일대다) 관계와 비슷하지만, 양방향에서 다수의 레코드를 가질 수 있다.
  • 서로의 PK를 자신의 외래키 컬럼으로 갖고 있어야 한다.
  • 일반적으로, N:M관계는 두 테이블의 대표키를 컬럼으로 갖는 또다른 테이블을 생성해서 관리한다(조인 테이블).

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

스프링 트랜잭션과 트랜잭션 전파  (0) 2021.12.28
트랜잭션 격리수준  (0) 2021.12.28
트랜잭션  (0) 2021.11.21
[Database] 정규화(Normalization) 쉽게 이해하기  (0) 2021.09.12
[대용량DB] 데이터 테이블의 종류 및 특성  (0) 2021.09.12
    'CS/DB' 카테고리의 다른 글
    • 스프링 트랜잭션과 트랜잭션 전파
    • 트랜잭션 격리수준
    • 트랜잭션
    • [Database] 정규화(Normalization) 쉽게 이해하기
    Carnival7
    Carnival7

    티스토리툴바