본문 바로가기

[DB]DataBase/[SQL]

[SQLD] 관계형 데이터베이스 개요

728x90
반응형

데이터베이스와 DBMS

데이터는 어떤 것들의 기록 정보이며, 데이터를 모아 둔 것을 데이터베이스 (DataBase; DB)라고 한다.

즉 데이터베이스는 데이터의 집합이다.

컴퓨터의 저장 장치(하드디스크, SSD)도 넓은 의미에서 파일 시스템 형태의 데이터베이스라고 할 수 있다.

데이터베이스를 관리하는 시스템을 DBMS (DataBase Management System)이라고 한다.

DBMS의 종류로는 대표적으로 오라클, MySQL, MS SQL Server등이 있고, SQL (Structured Query Language) 이라는 데이터베이스 조작 언어를 통해 관리된다.

데이터베이스는 설계, 운영, 저장 방식에 따라 여러 종류로 나뉜다.

(관계형 데이터베이스, 계층형 데이터베이스, 객체 지향 데이터베이스, XML 데이터베이스)

관계형  데이터베이스

관계형 데이터베이스는 열(Column)과 행(Row)을 갖는 2차원 테이블로 설계된 데이터베이스이다.

키(Key)와 관계로 연결하여 원하는 데이터를 조회하고 가공하는 방식이다.

관계형 데이터베이스 구조

관계형 데이터베이스 구성 요소

  • 계정
    • 데이터 접근 제한을 위한 여러 업무별/시스템별 계정 구분
  • 테이블(Table)
    • DBMS의 DB 안에서 데이터가 저장되는 형식 (저장 구조)
    • 데이터를 저장하고 관리
    • 데이터의 접근을 통제하고 검색, 삽입, 수정, 삭제를 위한 체계를 제공

단순 테이블 구조

  • 스키마(Schema)
    • 테이블 구성 형태와 어떤 정보를 가지는지에 대한 기본적인 구조를 정의

관계형 데이터베이스 특징

  • 테이블(table), 뷰(view), 인덱스(index) 등의 객체로 구성된다.
  • 테이블을 저장하는 개체(entity)와 관계(relation)들의 집합이다.
  • 일관성, 정확성, 신뢰성을 위한 트랜잭션, 무결성, 동시성 제어 등의 개념이 존재한다.

SQL

  • 관계형 데이터베이스에서 데이터 조회 및 조작, DBMS 시스템 관리 기능을 명령하는 언어
  • 특성에 따라 데이터 조작어(DML, Data Manipulation Language), 데이터 정의어(DDL, Data Definition Language), 데이터 제어어(DCL, Data Control Language), 트랜잭션 제어어(TCL, Transaction Control Language)로 구분
  • SQL 문법은 대/소문자를 구분하지 않음

SQL 동작 방식
SQL 명령어 분류

더보기

Note)

SQL 외에도 PL/SQL이라는 언어가 있다.

PL/SQL은 오라클 사의 SQL을 기본으로 하는 확장 언어이다.

조건문과 반복문을 사용해서 절차적 프로그래밍을 구현할 수 있다.

데이터 무결성(Data Integrity)

  • 데이터의 정확성과 일관성을 유지하고, 데이터에 결손과 부정합이 없음을 보장하는 것
  • 데이터베이스에 저장된 값과 그것이 표현하는 현실의 비즈니스 모델 값이 일치하는 정확성을 의미
  • 데이터 무결성을 유지하는 것이 데이터베이스 관리 시스템(DBMS)에서 중요한 기능

데이터 무결성 종류

  • 개체 무결성
    • 테이블의 기본키를 구성하는 컬럼(속성)은 NULL 값이나 중복값을 허용하지 않음
  • 참조 무결성
    • 외래키 값은 NULL이거나 참조 테이블의 기본키 값과 동일해야 함
    • 외래키 -> 참조 테이블의 기본키에 정의된 데이터만 허용되는 구조
  • 도메인 무결성
    • 주어진 속성 값이 정의된 도메인(각 컬럼(속성)이 갖는 범위)에 속한 값이어야 함
  • NULL 무결성
    • 특정 속성에 대해 NULL을 허용하지 않음
  • 고유 무결성
    • 특정 속성에 대해 값이 중복되지 않음
  • 키 무결성
    • 하나의 관계에는 적어도 하나의 키(식별자)가 존재해야 함
    • 테이블 간의 관계에서 반드시 하나의 조인키를 가짐
반응형

'[DB]DataBase > [SQL]' 카테고리의 다른 글

[SQLD] 함수  (0) 2024.04.23
[SQLD] SELECT 문  (0) 2024.03.11
[SQLD] 본질 식별자 vs. 인조식별자  (0) 2024.03.06
[SQLD] Null 속성  (0) 2024.03.04
[SQLD] 트랜잭션  (0) 2024.03.03