이 글은 데이터베이스 개론 (저자 김연희)의 내용을 개인적으로 정리하는 글임을 알립니다. 정규화의 개념과 이상 현상 정규화(Normalization)의 개념 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 부작용이 발생할 수 있다. 이러한 현상을 이상(anomaly) 현상이라 한다. 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정이 정규화다. 정규화는 데이터베이스를 설계 결과물을 검증하기 위해 사용하기도 한다. 이상 현상의 종류 이상 현상에는 갱신 이상(Modification Anomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly)이 있다. 위 릴레이션은 고객들이 이..
이 글은 데이터베이스 개론 (저자 김연희)의 내용을 개인적으로 정리하는 글임을 알립니다. 데이터데이스 설계 단계 데이터베이스 설계는 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 사용자가 데이터베이스를 실제로 사용하면 구조를 변경하기 어렵기 때문에 설계 과정에서부터 품질 좋은 데이터베이스를 생성해야 한다. 품질 좋은 데이터베이스를 평가하는 기준은 실제로 사용하는 구성원들의 요구사항을 만족하는지가 대표적인 기준이 된다. 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 두 가지 방법을 주로 사용한다. E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계 정규화를 이용한 데이터베이스 설계 이 글에서는 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계를 다룬다...
이 글은 데이터베이스 개론 (저자 김연희)의 내용을 개인적으로 정리하는 글임을 알립니다. 관계 데이터 모델의 개념 관계 데이터 모델의 기본 용어 Entiti, Table, Relation 엔터티 = 테이블 = 릴레이션으로 통칭해서 사용되기도 한다. DB의 설계 단계에서는 엔터티(Entity), DBMS로 구현되는 단계에서는 테이블(Table), 개념 단계에서 엔터티 간 연관관계를 릴레이션(Relation)이라고 한다. 엔티티 > 테이블 > 릴레이션 순으로 보면된다. 모든 릴레이션은 테이블이지만, 모든 테이블이 릴레이션인 것은 아니다. 모든 테이블은 엔티티이지만, 모든 엔티티가 테이블인것은 아니다. 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션(relation) 하나에 담아 데이터 베이스에 ..
이 글은 데이터베이스 개론 (저자 김연희)의 내용을 개인적으로 정리하는 글임을 알립니다. 데이터 모델링과 데이터 모델의 개념 데이터 모델링 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정을 데이터 모델링이라 한다. 현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 한 번에 옮기기는 쉽지 않다. 추상화 : 현실 세계의 데이터 중에서 중요한 데이터를 선별하는 작업 사람의 머릿속에 있는 현실 세계의 데이터 중에 중요한 데이터를 찾아 개념 세계로 옮기는 단계와 이를 컴퓨터 세계에 저장하는 구조를 결정해서 표현하는 단계로 나누어 진행한다. 개념적 모델링 : 현실 세계의 데이터 중에 중요한 데이터를 찾아 개념 세계로 옮기는 단계 논리적 모델링 : 개념 세계의 데이터를 데이터베이스에 저장..
이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 인덱스(index)는 데이터를 빠르게 찾을 수 있도록 도와주는 도구로, 실무에서는 현실적으로 인덱스 없이 데이터베이스 운영이 불가능하다. 인덱스에는 두 가지 종류가 있다. 클러스터형 인덱스(Clustered Index) 보조 인덱스(Secondary Index) 인덱스의 개념 책을 예로 들어보면 책의 내용 중 'UNIQUE'에 대해서 찾아보고 싶다면 제일 뒤에 수록되어 있는 찾아보기를 찾아보는 것이다. 찾아보기는 ABC 또는 가나다 순으로 이미 정렬되어 있어 'U' 부분을 살펴보면 쉽게 'UNIQUE' 단어를 찾을 수 있고, 단어 옆에 본문의 페이지 번호가 적혀 있어서 원하는 내용으로 빨리..
이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 뷰는 데이터베이스 개체 중에 하나이다. 모든 데이터베이스 개체는 테이블과 관련이 있지만, 특히 뷰는 테이블과 아주 밀접하게 연관되어 있다. 뷰는 한 번 생성해 놓으면 테이블이라고 생각해도 될 정도로 사용자들의 입장에서는 테이블과 거의 동일한 개체로 취급한다. 뷰는 테이블처럼 데이터를 가지고 있지 않다. 뷰의 실체는 SELECT 문으로 만들어져 있기 때문에 뷰에 접근하는 순간 SELECT가 실행되고 그 결과가 화면에 출력되는 방식이다. 뷰와 테이블의 관계는 바로 가기 아이콘과 실제 프로그램의 관계와 유사하다. 뷰는 단순 뷰와 복합 뷰로 나뉜다. 단순 뷰 : 하나의 테이블과 연관된 뷰 복합 뷰..
이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 테이블을 만들 때는 테이블의 구조에 필요한 제약조건을 설정해줘야 한다. 기본 키(Primary Key)는 학번, 아이디, 사번 등과 같은 고유한 번호를 의미하는 column에 지정한다. 외래 키(Foreign Key)는 기본키와 연결되는 column에 지정한다. 이메일, 휴대폰 번호와 같이 중복되지 않는 열에는 고유 키(Unique)를 지정할 수 있다. 회원의 평균 키를 넣는다고 가정할 때, 당연히 평균 키는 2m를 넘지 않을 것이다. 이때 실수로 200cm을 입력하는 것을 방지하는 제약 조건이 체크(Check)이다. 국내에서 서비스하는 프로그램을 만든다고 하면, 회원 테이블에 국적은 대부..
이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 테이블은 표 형태로 구성된 2차원 구조로, 행과 열로 구성되어 있다. 행은 row나 recode라고 부르며, 열은 column 또는 field라고 부른다. 테이블을 생성하기 전에 테이블의 구조를 정의해야 한다. 데이터 형식을 활용해서 각 열에 가장 적합한 데이터 형식을 지정한다. 회원 테이블 생성 SQL CREATE TABLE member -- 회원 테이블 ( mem_id CHAR(8) NOT NULL PRIMARY KEY, mem_name VARCHAR(10) NOT NULL, mem_number TINYINT NOT NULL, addr CHAR(2) NOT NULL, phone1 CHA..