본문 바로가기

Data Science/SQLD

[SQLD] SQL 기본 1-1. 관계형 데이터베이스 개요

반응형

1장 SQL 기본

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

1. 데이터베이스

DBMS : 효율적인 데이터 관리, 데이터 손상을 피하고, 데이터 복구를 위한 시스템

Database Management System

 

관계형 데이터베이스 RDBMS

파일 시스템 : 하나의 파일을 많은 사용자가 동시게 검색은 가능, 동시에 입력,수정,삭제는 불가

-> 정보의 관리가 어려움

따라서 여러 개의 데이터 파일이 존재하는데, 동일한 데이터가 여러 곳에 저장되는 문제가 발생

-> 데이터의 불일치성 발생

-> 데이터 간의 정합성을 보장이 힘들다.

 

관계형 데이터베이스 : 정규화 -> 이상현상 제거, 데이터 중복 피하고, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터 공유, 조작 기능 제공

 

또한 메타 데이터를 총괄 관리할 수 있기 때문에 체계화 가능, 데이터 표준화를 통한 데이터 품질 확보 가능

 

DBMS는 인증된 사용자만이 참조할 수 있또록 보안 기능을 제공

: 데이터 무결성 보장, 데이터 회복/복구 기능 제공

 

2. SQL

SQL이 시스템에 미치는 영향이 크다 : 고급 SQL / SQL 튜닝의 중요성 증가

 

RDBMS는 수학의 집합 논리에 입각해 SQL도 데이터를 집합으로써 취급

 

포지션이 미드필더인 선수의 정보를 검색 :

선수라는 큰 집합 -> 포지션이 미드필더인 조건을 만족하는 요구 집합 추출

 

데이터 조작어 Data Manipulation Language : SELECT / INSERT, UPDATE, DELETE : 조회 / 데이터 변형

데이터 정의어 Data Definition Language : CREATE, ALTER, DROP, RENAME : 구조 정의

데이터 제어어 Data Control Language : GRANT, REVOKE : 권한

트랜잭션 제어어 Transaction Control Language : COMMIT, ROLLBACK : 논리적인 작업의 단위인 트랜잭션 별로 제어

[단, TCL을 DCL로 분류하는 경우도 있다.]

 

3. TABLE

키는 키대로, 몸무게는 몸무게대로, 데이터의 순서를 정해서 비교하는 방법

테이블 : 데이터를 저장하는 객체로 관계형 데이터베이스의 기본 단위

2차원 구조로 나타내는데, 가로는 칼럼과 세로는 행이며, 겹치는 하나의 공간은 필드

 

선수 관련 데이터

선수 테이블 / 구단 테이블

분할 된 테이블은 그 칼럼의 값에 의해 연결

정규화 : 테이블을 분할해 데이터의 불필요한 중복을 줄이는 것

-> 데이터 정합성 확보, 이상현상 방지 [데이터베이스 모델링에서 매우 중요한 프로세스]

 

기본키 : 각 행을 한 가지로 특정할 수 있는 한 개 이상의 칼럼

선수 테이블-> 선수번호, 구단 테이블-> 구단코드

 

기본키 : 선수 테이블 -> 구단코드와  같이 다른 테이블의 기본 키로 사용되면서 테이블과의 관계를 연결하는 칼럼

 

4. ERD

팀정보와 선수 정보 간에는 다른 테이블과 연관성이나 관계가 존재하는데

ERD : 이와 같은 관계를 직관적으로 표현 가능

 

팀 <- 소속 -> 선수

ERD의 구성요소 : 엔터티, 관계, 속성

 

테이블 간의 양방향 관계 : 

하나의 팀은 여러 명의 선수 포함 가능

한 명의 선수는 하나의 팀에 꼭 포함

 

하나의 팀에는 하나의 전용 구장 꼭 가짐

하나의 운동장은 하나의 홈팀 소유 가능

 

하나의 운동장은 여러 게임의 스케줄 가능

하나의 스케줄은 하나의 운동장에 꼭 배정

 

축구팀과 축구선수는 비식별 관계로 -> 축구팀 하나에 축구선수 여러명

경기장과 일정 및 스코어는 식별관계 -. 경기장 하나에 일정 및 스코어 여러개

축구팀과 경기장은 비식별관계 -> 축구팀 하나에 경기장 하나씩

 

부서와 사원 테이블

부서와 사원은 비식별 관계로

하나의 부서는 여러 명의 사원을 보유 가능

한 명의 사원은 하나의 부서에 꼭 소속

 

반응형