[ SQLD : II. SQL 기본 및 활용] 1-1. 관계형 데이터베이스 개요

문지은·2023년 6월 1일
0

SQLD

목록 보기
11/30
post-thumbnail

[SQLD 시험 대비] 2과목. SQL 기본 및 활용 : 1장. SQL 기본 - 1. 관계형 데이터베이스 개요

관계형 데이터베이스 개요

데이터베이스

  • 데이터베이스 정의
    • 특정 기업이나 조직 또는 개인이 필요에 의해(ex: 부가가치가 발생하는) 데이터를 일정한 형태로 저장해 놓은 것
  • DBMS(Database Management System)
    • 데이터베이스를 운영하고 관리하는 소프트웨어
    • 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구할 수 있게 함
  • 관계형 데이터베이스(Relational Database)
    • 행과 열로 이루어진 각각의 테이블을 고유값(Primary Key)을 참조하여 서로 종속되는 관계(=연결하는것)를 표현하는 데이터 베이스 구조
    • 정규화를 통한 합리적인 테이블 모델링을 통해 이상(ANOMALY) 현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공
    • 메타 데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성 또는 표현 방법 등을 체계화할 수 있고, 데이터 표준화를 통한 데이터 품질을 확보할 수 있는 장점이 있음

SQL(Structured Query Language)

  • 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어

데이터 조작어(DML; Data manipulation Language)

  • 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어
    • SELECT
  • 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어
    • 데이터를 테이블에 새로운 행을 집어넣거나, 원하지 않는 데이터를 삭제하거나 수정
    • INSERT, UPDATE, DELETE

데이터 정의어(DDL; Data Definition Language)

  • 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
    • 데이터 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꿈
    • CREATE, ALTER, DROP, RENAME

데이터 제어어(DCL; Data Control Language)

  • 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어
    • GRANT, REVOKE

트랜잭션 제어어(TCL; Transaction Control Language)

  • 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어
    • COMMIT, ROLLBACK

TABLE

  • 테이블(TABLE)은 데이터를 저장하는 객체(Object)로서 관계형 데이터베이스의 기본 단위
  • 관계형 데이터베이스에서는 모든 데이터를 칼럼과 행의 2차원 구조로 나타낸다.
    • 세로 방향을 칼럼(Column), 가로 방향을 행 (Row)이라고 하고,
    • 칼럼과 행이 겹치는 하나의 공간을 필드(Field)라고 한다.

테이블 용어

  • 테이블(TABLE)
    • 행과 칼럼의 2차원 구조를 가진 데이터의 저장 장소이며, 데이터베이스의 가장 기본적인 개념
  • 칼럼/열(Column)
    • 2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성 (더이상 나눌 수 없는 특성)
  • 행(Row)
    • 2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터

테이블 관계 용어

  • 정규화(Normalization)
    • 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스
  • 기본키(Primary Key)
    • 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼
  • 외부키(Foreign Key)
    • 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

ERD(Entity Relationship Diagram)

  • 테이블 간 서로의 상관 관계를 그림으로 도식화한 것

  • 엔터티(Entity), 관계(Relationship), 속성(Attribute) 3가지로 구성

  • 아래와 같은 테이블 관계를 가진 K-리그 ERD를 그려보자.

    • 작성한 테이블은 이 후 예시에서 계속 사용한다.
    - 하나의 팀은 여러 명의 선수를 포함할 수 있다. 
    - 한 명의 선수는 하나의 팀에 꼭 속한다.
    
    - 하나의 팀은 하나의 전용 구장을 꼭 가진다.
    - 하나의 운동장은 하나의 홈팀을 가질 수 있다.
    
    - 하나의 운동장은 여러 게임의 스케줄을 가질 수 있다. 
    - 하나의 스케줄은 하나의 운동장에 꼭 배정된다.

profile
코드로 꿈을 펼치는 개발자의 이야기, 노력과 열정이 가득한 곳 🌈

0개의 댓글