ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스 개요
    카테고리 없음 2025. 3. 13. 12:28

     

    1주차 Database Study

     

    데이터베이스

    데이터를 체계적으로 저장하고 관리하는 시스템

     

    데이터베이스의 특징

    • 중복 최소화 : 데이터의 중복을 최소화하여 저장
    • 데이터 일관성 : 불일치성을 방지
    • 데이터 보안 : 접근 제어, 인증, 암호화 등의 방법을 이용하여 보안을 유지
    • 데이터 독립성 : 데이터의 표현 방법이나 저장 위치가 변하더라도 응용 프로그램에 영향 X

     

    파일시스템과 데이터베이스

    • 중복된 내용이 있을 수 있음
    • 파일시스템은 데이터 처리 및 검색이 어려움
    • 파일의 관계를 지정할 수 없음

     

    DBMS

    데이터베이스를 운영하고 관리하는 소프트웨어를 의미

    ex) MySQL, Oracle, SQL Server

     

    DBMS의 특징

    • 데이터 조작 : 데이터를 조회하고 수정/삭제 가능
    • 동시성 제어 : 여러 사용자가 동시에 데이터베이스에 접근 가능
    • 보안 : 인가된 사용자만 데이터에 접근 가능

     

    스키마

    데이터베이스의 구조를 정의하는 메타데이터

    ex) 테이블 메타데이터, 테이블 간의 관계/제약조건

     

    3단계 데이터베이스 구조

    • 외부 스키마 : 데이터 구조를 사용자 입장에서 추상화(사용자) → 사용자가 데이터를 어떻게 볼지
    • 개념 스키마 : 데이터의 논리적 구조와 제약조건을 정의(조직) → 데이터가 어떻게 구성되어 있는지에 대한 정보
    • 내부 스키마 : 데이터의 물리적 구조와 제약 조건을 정의(저장 장치) → 디스크에 어떻게 저장되는지에 대한 정보

     

    외부 스키마에 대해서 추가설명을 하자면 각 사용자는 권한에 따라서 제한된 데이터를 조회 가능

    ex) 사용자 A는 Z 테이블만을 조회할 수 있고 사용자 B는 X 테이블만을 조회할 수 있음

     

    데이터 독립성 

    • 3단계 데이터베이스 구조로 데이터베이스를 구성했을 때의 장점
    • 하위 단계의 스키마가 변경되어도 상위 단계의 스키마가 영향을 받지 않는 특성

     

    데이터 독립성의 종류

     

    ꤶ 논리적 데이터 독립성

    개념 스키마가 변경되어도 외부 스키마는 영향 X

     

    ex) 컬럼을 새로 추가해도 기존 SQL을 변경하지 않아도 정상 동작

     

    ꤶ 물리적 데이터 독립성

    내부 스키마가 변경되어도 개념 스키마는 영향 X

     

    ex) 저장장치를 하드디스크에서 SSD로 변경해도 인덱스 저장방식은 변경 X

     

     

    RDBMS

    • 관계형 데이터를 저장하는 DBMS
    • 관계형 데이터는 테이블이라는 최소 단위로 구성되고 행과 하나 이상의 열로 구성

     

    릴레이션

    관계형 데이터베이스의 정보를 구분하여 저장하는 기본적인 구조

    • 릴레이션 스키마 : 릴레이션의 구조를 정의, 릴레이션 내 속성과 데이터 타입을 정의
    • 릴레이션 인스턴스 : 여러 개의 튜플로 구성
    • 튜플 : 릴레이션의 행
    • 속성 : 릴레이션의 열
    • 차수 : 릴레이션의 속성의 개수, 최소 1개 이상 존재해야 함
    • 카니덜리티 : 릴레이션의 튜플의 개수, 최소 0개 이상
    • 도메인 : 각 속성의 데이터 타입 ex) EMPNO int

    ex) EMPLOYEE(EMPNO, EMPNAME, TITLE, DNO, SALARY)

     

    릴레이션 != 테이블
    전공수업에서는 릴레이션과 테이블이 (거의) 같다고 생각하고 공부했던 것 같은데
    몇몇 블로그에서는 엄밀하게 말하면 다른 것이라고 쓰여있긴 함

    테이블은 릴레이션의 실제 구현

     

    튜플을 고유하게 식별하는 데 사용되는 속성 혹은 속성 집합 → 여러 개가 키가 될 수도 있음

    • 슈퍼키 : 테이블 내 모든 튜플을 고유하게 식별할 수 있는 속성 집합
    • 후보키 : 슈퍼키 중 최소성을 만족하는 속성 집합 → 슈퍼키 중 개수가 가장 적은 집합
    • 기본키 : 후보키 중에서 하나를 선택, 중복된 값이나 NULL X
    • 대체키 : 기본키가 아닌 후보키 중 하나
    • 외래키 : 한 테이블에서 다른 테이블의 기본키를 참조하는 속성

     

    무결성 제약조건

    데이터베이스에서 데이터의 정확성, 일관성을 보장하기 위한 규칙

     

    도메인 무결성

    각 속성에 입력될 수 있는 값의 범위나 유형을 제약

     

    ex) VARCHAR(20), CHECK

     

    개체 무결성

    테이블의 기본키는 고유하게 식별되고 NULL값을 가질 수 없음

     

    참조 무결성

    외래키가 다른 테이블의 기본키나 후보키를 참조할 때 값이 존재해야 함

     

    ex) 외래키가 4를 참조하는데 실제로 그 테이블에 4가 없으면 안 됨

     

     

     

    MySQL 엔진

    MySQL은 크게 MySQL 엔진과 스토리지 엔진으로 구분됨

    • MYSQL 엔진 : 클라이언트의 접속과 쿼리 요청을 전달
    • 스토리지 엔진 : 실제로 데이터를 읽고 저장하는 방식을 정의

    스토리지 엔진의 종류로는 InnoDB, MyISAM, Memory, CSV가 있다.

     

    MyISAM

    • 5.5이전 MySQL엔진
    • 트랜잭션 제공 X
    • InnoDB보다 전체적인 성능은 좋음
    • Table Level Lock

     

    InnoDB

    • 5.5이후 MySQL엔진
    • 트랜잭션 제공
    • MyISAM보다 성능은 낮지만 안정성 보장
    • Row Level Lock
Designed by Tistory.