[데이터베이스] 기초

zunzero·2022년 8월 14일
0

CS

목록 보기
2/8

3학년 1학기인가 2학기엔가 데이터베이스 과목을 듣고 좋은 성적도 받았지만,,, 다 까먹었다. ㅎ
그래서 가볍게 정리하는 글을 작성하려 한다.
기본 이론이나 개념은 생략하고 ERD, 스키마 설계 같은 것들과 sql 문법을 정리하려 한다.

데이터 언어

  • 데이터 정의어 DDL
    스키마를 정의하거나, 수정 또는 삭제하기 위해 사용한다.
  • 데이터 조작어 DML
    데이터의 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해 사용한다.
  • 데이터 제어어 DCL
    내부적으로 필요한 규칙이나 기법을 정의하기 위해서 사용한다.

데이터 모델링

현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정이다.
데이터베이스 설계의 핵심 화정인 추상화 Abstraction 단계이다.
추상화는 컴퓨터 관련 과목에서 매우 자주 언급되고 중요한 부분이다.

데이터 모델링을 할 때, ERD를 설계하게 되는데 이는 개체와 관계 다이어그램을 의미한다.
ERD를 정말 잘 설계해야한다.!!!
위의 그림으로 예를 들어 설명하겠다.

사각형: 개체를 표현
마름모: 관계를 표현
타원: 속성을 표현
링크(연결선): 각 요소를 연결하며, 필수적 참여와 선택적 참여를 구분함 (이중선 -> 필수 참여)
레이블: 일대일, 일대다, 다대다 관계 표기

관계에는 종속성이라는 개념을 통해, 약한 개체와 강한 개체를 구분한다.
약한 개체는 다른 개체의 존재 여부에 의존적인 개체로, 자기 자신의 속성으로만 키를 명세할 수 없는 개체 타입이다. 따라서 약한 개체 집합 내에서 서로를 구별할 수 있는 속성으로는 부분키가 있다.
강한 개체는 다른 개체의 존재 여부를 결정하는 개체이다.
강한 개체와 약한 개체는 일반적으로 일대다의 관계가 성립된다.
약한 개체는 강한 개체와의 관계에 필수적으로 참여하기 때문에, 이중 연결선과 이중 사각형으로 표현된다.
또한 해당 관계는 이중 마름모로 표현된다.

릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합을 키라고 한다.
키의 특성으로는 유일성과 최소성이 있다.

  • 유일성 (uniqueness)
    하나의 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 한다.

  • 최소성 (minimality)
    꼭 필요한 최소한의 속성들로만 키를 구성한다.

    - 수퍼키 (super key)
    유일성을 만족하는 속성 또는 속성들의 집합
    - 후보키 (candidate key)
    유일성과 최소성을 만족하는 속성 또는 속성들의 집합
    - 기본키 (primary key)
    후보키 중에서 기본적으로 사용하기 위해 선택한 키
    - 대체키 (alternate key)
    기본키로 선택되지 못한 후보키

외래키

  • 외래키 (foreign key)
    - 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
    • 릴레이션들 간의 관계를 표현
      • 참조하는 릴레이션: 외래키를 가진 릴레이션
        • 참조되는 릴레이션: 외래키가 참조하는 기본키를 가진 릴레이션

무결성 제약조건

무결성 제약조건은 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙이다.

무결성: 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것

개체 무결성 제약조건

기본키를 구성하는 모든 속성은 널(Null)값을 가질 수 없는 규칙이다.

참조 무결성 제약조건

외래키는 참조 할 수 없는 값을 가질 수 없는 규칙이다.
(외래키 속성이 널 값을 가진다고 해서 참조 무결성 제약조건을 위반한 것은 아니다.)

관계 데이터 연산

관계 데이터 연산에는 관계 대수와 관계 해석이 있는데 우리는 데이터를 처리하는 연산인 관계 대수에 대해 알아보겠다.
관계 대수는 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 것이다.
위와 같은 연산자들이 있는데 일반 집합 연산자는 너무 간단해서 넘어가겠다.
순수 관계 연산자 중, 셀렉트는 튜플별로 검색을 하고 프로젝트는 도메인별로 검색을 하는 것이다.
중요한 것은 조인이다.

조인

  1. 세타 조인 (theat join)
    주어진 조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결하여 생성된 새로운 투플로 결과 릴레이션을 구성한다.
  2. 동일 조인
    세타 연산자가 '=' 인 세타 조인을 의미한다. (세타 연산자는 >, <, =, 등이 있다.)
  3. 조인 혹은 자연 조인
    간단하게, 동일 조인에서 중복 속성을 제거한 것이라고 보면 된다.
  4. 세미 조인
    조인 연산 비용을 크게 줄일 수 있는 장점을 가지고 있다.
    교환법칙은 성립하지 않는다.
  5. 외부 조인
    자연 조인 연산에서 제외되는 투플도 Null 값을 삽입하여 결과 릴레이션에 포함시키는 조인이다.

정리

기본적이라 생각되는 정보를 글로 정리하여 작성했지만, 매우 미흡한 글이다.
강의록을 참고하여 개인적으로 중요하다고 생각하는 것만 정리하여 적은 글이기 때문에, 이 글 하나로 데이터베이스에 대한 감을 잡기는 어렵다.
그저 개인적으로 복습용으로 작성한 글일 뿐, 다시 공부할 때는 강의록을 한 번 더 보거나, 글을 좀 더 다듬어야 할 것 같다.

profile
나만 읽을 수 있는 블로그

0개의 댓글