CS/데이터베이스 14

3NF 와 BCNF의 차이점 정리

정규화에는 1정규화, 2정규화,... 5정규화가 있습니다. 그 중 3 정규화는 3NF라고 하는데, 이와 유사한 BCNF가 있습니다. 이 둘의 개념은 구분하기 어렵고 따라서 이번 포스팅에서는 이 둘을 상세히 비교해보려고 합니다. 3NF 3정규화 1. 개념 제 2정규화를 만족하는 동시에 prime attribute가 아닌 속성들이 Primary key에 dependent하거나, 참조당하는 속성이 prime attribute이어야 합니다. 잘 이해가 안되므로 아래의 예시를 통해 설명하겠습니다. Definition of 3NF: X -> A (a) X is a superkey of R or (b) A is a prime attribute of R * prime attribute는 키를 구성하는 attribute..

[데이터 베이스] 제약조건 정리

데이터베이스에는 무결성을 위한 제약조건이 있는데, 개체 무결성, 참조 무결성, 도메인 무결성이 있습니다. 개체 무결성 제약 조건 기본 키를 구성하는 속성은 NULL값을 가질 수 없다는 것입니다. 예를 들어 ID가 기본키로 정의되어 있으면 튜플을 추가할 때 ID가 NULL이거나, 중복된 값을 가지면 안된다는 것입니다. 참조 무결성 제약 조건 외래 키 값이 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 것입니다. 또한 도메인도 같아야 합니다. 릴레이션은 참조할 수 없는 외래 키 값을 가질 수 없습니다. 아래의 예시에서 Insert into WORKS_ON. 로 튜플을 삽입할 수 있을까요? 아닙니다. 왜냐하면 Works_on의 Pno가 참조하는 Project의 Pnumber에 7이 없기 때문입니다..

[데이터베이스] 트랜잭션의 개념과 ACID 특징 정리

데이터베이스 트랜잭션의 개념과 ACID 특성에 대해 알려드리고자 합니다. 트랜잭션이란 복수 쿼리를 한 단위로 묶은 것이며, ACID 특성에는 원자성, 일관성, 고립성, 지속성이 있습니다. 이 글에서는 이에 대해 자세히 알아보려 합니다. 데이터베이스 트랜잭션 개념 데이터의 갱신은 단일 쿼리만으로 구성되는 것이 아니라, 복수 쿼리를 연속적으로 수행하는 경우가 대부분이다. 또한 갱신 전의 데이터로 SELECT를 사용할 때 이를 포함해 복수 쿼리를 일관된 형태의 한 덩어리로 다뤄야 한다. 트랜잭션이란 이런 복수 쿼리를 한 단위로 묶은 것이다. 데이터베이스 트랜잭션 특성(ACID) ① 원자성 데이터의 변경(INSERT/DELETE/UPDATE)을 수반하는 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하..

MySql 중복 행 서브 쿼리문에 join이 사용되는 이유

[데이터베이스] MySql 중복 행 서브 쿼리문에 join이 사용되는 이유 목차 1. 문제 상황 2. 해결 과정 3. 해결 문제 상황 각 행정구역의 평균보다 인구수가 더 큰 정보를 쿼리하라. select * from citykorea c1 where population > (select avg(population) from citykorea as c2 where c1.district = c2.district group by district); 데이터베이스 첫걸음 서브 쿼리문 공부중 c1.district = c2.district라는 코드는 왜 들어가는지 의문이 생겼다. sql 쿼리 순서상 where 다음 group by가 오므로 서브 쿼리문의 where을 연산할 당시의 c1.district = c2.dis..

[데이터베이스] SQL JOIN 정리 및 예제

[데이터베이스] SQL JOIN 목차 1. JOIN이란? 2. INNER JOIN 3. OUTER JOIN 4. NATURAL JOIN 5. SELF JOIN JOIN이란? 개념 JOIN은 2개 이상의 테이블을 엮어서 조회하는 연산이다. 종류 1. Inner JOIN: 서로 매칭되는 것만 조회한다. (교집합) 2. Outer JOIN: 매칭되는 데이터를 기준으로 좌측 또는 우측의 데이터도 같이 조회한다. - Outer JOIN은 세 종류가 있습니다 -> Left Outer JOIN, Right Outer JOIN, Full Outer JOIN 3. Natural JOIN: 두 테이블을 JOIN할때 컬럼명, 타입이 같은 모든 컬럼을 JOIN 조건으로 사용한다. 4. Self JOIN: 자기 자신의 테이블을..

[데이터베이스] SQL 정의어, 조작어 SELECT 문법 정리

[데이터베이스] SQL 정의어, 조작어 SELECT 문법 정리 목차 1. SQL 정의어 2. SQL 조작어 SELECT SQL 정의어 개념 데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터 전체의 골격을 결정하는 역할을 하는 언어 로 CREATE, ALTER, DROP이 있다. 코드 예시 1. CREATE CREATE TABLE address( ID int not null, name varchar(20) not null, age int not null, address char(25), primary key(ID) ); 2. ALTER ALTER TABLE address ADD (birth date); 3. DROP DROP TABLE address SQL 조작어 SELECT ..

[데이터베이스] 관계 대수 정리

[데이터베이스] 관계 대수 정리 목차 1. 일반 집합 연산자 2. 순수 관계 연산자 일반 집합 연산자 개념 릴레이션이 튜플의 집합이라는 개념을 활용하는 연산자이다. 종류 연산자 기호 표현 의미 합집합 U RUS 릴레이션 R과 S의 합집합 반환 교집합 ∩ R∩S 릴레이션 R과 S의 교집합 반환 차집합 - R-S 릴레이션 R과 S의 차집합 반환 카티션 프로젝트 X RXS 릴레이션 R의 각 튜플과 릴레이션 S의 각 튜플을 모두 연결하여 새로운 튜플을 반환 순수 관계 연산자 개념 릴레이션의 구조와 특성을 이용하는 연산자 종류 1. 셀렉트 σ - 원하는 데이터를 수평적으로 도출한다. - 한 릴레이션에 조건을 만족하는 튜플의 부분집합을 생성한다. 위의 예시에서는 등급이 Gold인 것만을 고객 릴레이션에서 찾아 튜플..

[데이터베이스] 이상현상과 함수 종속성, 정규화

이번 글에서는 데이터 베이스의 이상현상인 삽입 이상, 삭제 이상, 갱신 이상에 대해 알아보고, 속성의 의존관계인 함수 종속성에 대해 알아보고 마지막으로 제 1정규화, 제 2정규화, 제 3정규화에 대해 알아보겠습니다. 목차 1. 이상현상 2. 함수 종속성 3. 정규화 데이터베이스의 이상현상 테이블 내 데이터의 중복성에 의해 발생하는 데이터 불일치 현상을 의미합니다. 종류에는 3가지가 있는데 삽입 이상, 삭제 이상, 갱신 이상이 있습니다. 1. 삽입 이상: 원하는 값과 테이블의 필드가 달라 생기는 이상현상 Course Code가 존재하지 않으므로, 테이블에 데이터를 추가할 수 없습니다. 2. 삭제 이상: 특정 정보를 삭제하면, 원치 않은 정보도 삭제되는 이상현상 Saperstein 교수를 삭제하면, Hire..

[데이터베이스] 관계형 데이터베이스 모델링

[데이터베이스] 관계형 데이터베이스 모델링 목차 1. 데이터 모델링 2. 개체 관계 모델 3. 관계 데이터 모델링 데이터 모델링 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정으로 데이터베이스 설계의 핵심 과정이다. 데이터 모델링은 2단계로, 개념적 데이터 모델링과 논리적 데이터 모델링이 있다. 1) 개념적 데이터 모델링 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업 2) 논리적 데이터 모델링 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업 개체 관계 모델 1) 관련 개념 1. 개체 현실세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미한다. Ex) 서점에 필요한 개체: 고객, 책 2. 속성 개체나 관계가 가지고 있..

[데이터베이스] 데이터베이스 시스템이란?

[데이터베이스] 데이터베이스 시스템이란? 목차 1. 데이터 시스템의 정의 2. 데이터베이스의 구조 3. 데이터 언어 4. 데이터 관리 시스템 데이터 시스템의 정의 데이터베이스 시스템이란 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다. 데이터베이스 시스템(DBS) vs 데이터베이스 관리 시스템(DBMS) DBMS는 데이터베이스를 관리하는 소프트웨어로, MySQL, Oracle 등이 있다. 데이터베이스 시스템은 이를 포함한 조금 더 큰 개념이다. 데이터베이스 구조 https://abcdefgh123123.tistory.com/453 [데이터베이스] 데이터 베이스란? [데이터베이스] 데이터 베이스란? 목차 1. 데이터와 정보 2. 데이터베이스 구조 3. 데이터베이스..

728x90