ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기술 면접 - 데이터 베이스 (1)
    기술 면접 2021. 4. 20. 02:02

    데이터베이스 시스템

    데이터 베이스 특징

    1. 실시간 접근성
    2. 계속적인 변화
    3. 동시 공유
    4. 내용에 따른 참조

    DBMS의 장점

    1. 데이터의 독립성
      • 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
      • 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양항 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
    2. 데이터의 무결성
      • 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.
    3. 데이터의 보안성
      • 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
    4. 데이터의 일관성
      • 연관된 정보를 논리적은 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
    5. 데이터 중복 최소화
      • 데이터베이스는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.

    데이터 베이스 개념적 구조

    1. 외부 스키마
      1. 전체 데이터베이스 중에서 하나의 논리적인 부분
      2. 서브 스키마라고도 하며, 뷰의 개념
      3. 여러 개의 외부 스키마가 있을 수 있음
    1. 개념 스키마
      1. 전체 데이터베이스의 정의
      2. 하나의 데이터베이스에는 하나의 개념 스키마가 존재
    1. 물리 스키마
      1. 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법을 표현
      2. 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항 포함

    관계 데이터 모델

    • 슈퍼키
      • 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 집합
    • 후보키
      • 튜플을 유일하게 식별할 수 있는 속성의 최소 집합
    • 기본키
      • 여러 후보키 중 하나를 선정하여 대표로 삼는 키 ( primary key )
    • 외래키
      • 다른 릴레이션의 기본키를 참조하는 속성

    무결성 제약 조건

    • 데이터 무결성
      • 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것
    • 도메인 무결성 제약조건
      • 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야 한다는 조건
    • 개체 무결성 제약조건 (기본키 제약)
      • 기본키는 null 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다
    • 참조 무결성 제약조건 (외래키 제약)
      • 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다

    SQL

    DML - 검색

    SELECT [ ALL | DISTINCT ] 속성 이름
    FROM 테이블 이름
    WHERE 검색 조건
    GROUP BY 속성 이름
    HAVING 검색 조건
    ORDER BY 속성 이름 [ASC | DESC]

    DML - INSERT

    INSERT INTO 테이블이름(속성 리스트)
                    values (값 리스트)

    DML - UPDATE

    UPDATE 테이블 이름
    SET 속성이름 = 값
    WHERE 검색조건

    DML - DELETE

    DELETE FROM 테이블 이름 WHERE 검색조건

    DDL - CREATE

    CREATE TABLE 테이블 이름
        ( {속성 이름, 데이터 타입 [NULL | NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건]}
          PRIMARY KEY 속성이름
           FOREIGN KEY 속성이름 REFERENCES 테이블이름
           ON DELETE {CASCADE | SET NULL}
      )

    DDL - ALTER

    ALTER TABLE 테이블 이름
        ADD 속성이름 데이터타입
        DROP COLUMN 속성이름
        ALTER COLUMN 속성이름 데이터 타입
        ALTER COLUMN 속성이름 [NULL | NOT NULL]
        ADD PRIMARY KEY(속성이름)
        [ADD | DROP] 제약이름

    DDL - DROP

    DROP TABLE 테이블이름

    인덱스

    인덱스란?

    • 자료를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조
    • 원하는 데이터를 빨리 찾기 위해 튜플의 키 값에 대한 물리적 위치를 기록해둔 자료구조
    • RDBMS의 인덱스는 대부분 B-TREE 구조로 되어있음

    img

    B-tree

    • B-tree의 각 노드는 키 값과 포인터를 가진다
    • 항상 정렬상태를 유지, 균형 상태 유지
    • 검색할 때 특유의 트리 구조를 이용하기 때문에 한 번 검색할 때마다 검색 대상이 줄어 접근 시간이 적게 걸림
    • 데이터의 변경이나 추가가 잦을 경우 B-tree의 모양을 유지하기 위해 노드의 분할 및 이동이 자주 발생하는 단점이 있음

    인덱스 특징

    • 테이블에서 한 개 이사의 속성을 이용하여 생성
    • 빠른 검색과 함께 효율적인 레코드 접근
    • 순서대로 정렬된 속성과 데이터의 위치만 보유하므로 테이블보다 작은 공간을 차지
    • 저장된 값들은 테이블의 부분집합이 됨
    • 데이터의 수정, 삭제 등의 변경이 발생하면 인덱스의 재구성이 필요함

    클러스터 인덱스, 보조 인덱스

    • 클러스터 인덱스
      • 연속된 키 값의 레코드를 묶어서 같은 블록에 저장하는 방법
      • B-tree 인덱스의 리프 노드에서 페이지의 주소 값 대신 테이블의 열 자체가 저장되는 형태
    • 보조 인덱스
      • 속성의 값으로 B-tree 인덱스를 구성하며 리프 노드의 각 행은 해당 페이지의 주소 값을 저장

    인덱스 생성

    • 데이터의 양이 별로 없거나 데이터 값이 몇 종류 안되어 선택도가 높을 경우 인덱스가 없는 게 더 빠를 수 있음
    • 의미 없이 인덱스를 생성하면 검색이 더 느려지고 저장 공간만 낭비
    CREATE INDEX ix_Book ON BOOK(bookname)

    '기술 면접' 카테고리의 다른 글

    기술 면접 - 객체 지향  (0) 2021.04.20
    기술 면접 - 데이터 베이스 (2)  (0) 2021.04.20
    기술 면접 - 운영체제 (4)  (0) 2021.04.19
    기술 면접 - 운영체제 (3)  (0) 2021.04.19
    기술 면접 - 운영체제 (2)  (0) 2021.04.19

    댓글

Designed by Tistory.