데이터베이스 개념, 모델, 질의어

Hyerin·2022년 10월 24일
0

삼단계 스키마 구조

데이터 독립성을 통한 프로그래머의 생산성 향상 가능
외부 단계 : 사용자가 요구하는 데이터베이스의 관점
사용자가 관심을 갖는 데이터만 추출한 데이터베이스의 부분집합
개념 단계 : 모든 사용자 관점을 통합한 전체 데이터베이스의 관점
내부 단계 : 하드웨어에 저장되는 데이터베이스의 물리적인 구조를 기술한 것

관계형 데이터 모델

  1. 관계의 특성

    1) 각 열은 동일한 속성에 관한 값을 갖는다.

    2) 테이블의 각 셀 값은 반드시 단일값이어야 한다.

    3) 각 열은 고유한 이름을 갖는다.

    4) 각 열의 순서는 중요하지 않다.

    5) 식별자 속성 열은 동일한 값을 가질 수 없으며, 이 열의 값에 의해 각 행은 구별될 수 있다.

    6) 각 행의 순서는 중요하지 않다.


  1. 대안적 용어

    관계(relation) - 튜플(tuple) - 속성(attribute)
    테이블(table) - 행(row) - 열(column)
    파일(file) - 레코드(record) - 항목(field)


  1. 주키

    튜플의 중복을 방지하기 위하여 주키를 사용한다.

    두가지 특성을 갖춰야한다.
    1) 유일성 : 각 튜플을 유일하게 구별지을 수 있는 성질
    2) 최소성 : 유일성을 파괴하지 않고는 주키에 속한 속성의 일부를 제거할 수 없는 성질

    두개 이상의 항목이 결합해 주키의 역할을 할 때 합성키라고 한다.

  2. 외부키

  1. 개체관계성도 그림

정규화

1) 데이터 갱신에서 발생하는 3가지 이상

  • 삽입 이상 : 새로운 속성 값을 추가하려고 해도 주키의 일부값이 정해지지 않으면 데이터베이스에 기록할 수 없다.
  • 삭제 이상 : 특정 속성 값을 삭제하여 속성 자체가 사라진다면 정보의 손실이 발생한다.
  • 갱신 이상 : 속성 값이 불필요하게 반복된다면 저장 공간의 낭비가 일어나기 때문에 수정해야 한다. 모든 속성값을 동시에 수정해주지 않으면 데이터의 불일치가 발생한다.

2) 1차 정규형
테이블의 각 셀은 단일값을 갖는다.

3) 2차 정규형
1차 정규형을 만족하고 완전 함수적 종속(full functional dependency)을 만족한다.
주키가 아닌 속성이 주키에 완전히 함수적으로 종속되어 있다는 것은 주키의 일부만으로는 주키가 아닌 키의 속성의 값을 결정지을 수 없다는 것을 의미한다.

4) 3차 정규형
2차 정규형을 만족하고 이전 종속이 존재하지 않는 관계이다.

5) 보이스-코드 정규형 (BCNF)
어느 관계의 모든 결정자가 후보키의 역할을 수행할 수 있다면, 그 관계는 보이스-코드 정규형의 관계이다.

6) 4차 정규형

7) 5차 정규형

SQL 명령어

1) CREATE
2) SELECT

  • SELECT DISTINCT 부품번호 FROM 주문 (중복제거)
  • SELECT * FROM 주문 WHERE 주문번호 LIKE '%01' (데이터 항목 값의 일부분만 일치해도 출력)
  • SELECT * FROM 부품 WHERE 재고량 BETWEEN 2000 AND 2500 (특정 범위내에 있는 값)
  • [NOT] IN (값 1, 값2, 값) - 제시된 값 중에서 표현식과 일치하는 값 출력
  • IS [NOT] NULL - 미확인(null) 값인지 확인

3) 집단함수

  • AVG(항목명) : 평균값
  • COUNT(항목명) : 총 개수
  • MAX(항목명) : 최고 값
  • MIN(항목명) : 최소 값
  • SUM(항목명) : 합계

4) GROUP BY - 레코드를 집단으로 분류하는 조건식
5) HAVING - GROUP BY 절로 분류한 집단에 적용되고 WHERE 절과 비슷한 역할
6) ALL/ANY/SOME - 생성되는 모든 값이 조건을 만족 / 생성되는 값 중 하나라도 만족 / ANY대신 SOME으로 사용 가능
7) EXISTS - 검색 결과가 미확인(null)값인지 확인

  • WHERE [NOT] EXISTS (<SELECT 내포문 >)

8) 집합 연산자

  • UNION
  • INTERSECT
  • EXCEPT

9) 참조 무결성 제약 명령어

  • NO ACTION 명령(삭제 금지 방식) : 자식 테이블이 부모 테이블의 레코드를 참조하고 있는 한 부모의 레코드의 삭제를 금지한다.
  • CASCADE (참조 삭제 방식) : 부모 테이블의 레코드가 삭제되는 경우 자동적으로 자식 테이블의 해당 레코드를 삭제한다.
  • SET NULL (미확인 값 방식) : 부모 테이블의 레코드가 삭제되는 경우 자동적으로 자식 테이블의 해당 레코드의 항목 값을 미확인 값으로 갱신한다.
  • SET DEFAULT (기본값 방식) : 부모 테이블의 레코드가 삭제되는 경우 자동적으로 자식 테이블의 해당 레코드의 항목 값을 기본값으로 갱신한다.

10) ALTER
11) DROP TABLE - 테이블을 삭제
12) INSERT INTO (TABLE)- 테이블에 레코드를 추가
13) DELETE FROM (TABLE) - 필요 없는 레코드를 삭제
14) UPDATE (TABLE) SET (항목명)- 저장되어 있는 데이터 값을 변경
15) CREATE VIEW (TABLE) AS (SELECT 내포문)- 가상 테이블 생성


데이터베이스 관리 (4TH EDITION) - 서길수 저
참고해서 작성했습니다.

profile
DevOps, 코딩 기록

0개의 댓글