728x90

Database 7

[DB] 데이터베이스 정규화와 이상 현상 (Normalization & Anomaly)

정규화란 이상 현상을 제거하기 위해서 데이터베이스를 올바르게 설계해 나가는 과정이다. 여기서 이상 현상이란 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용이다. 이상 현상의 종류 1. 삽입 이상 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 2. 갱신 이상 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 문제 3. 삭제 이상 튜플을 삭제하면 꼭 필요한 데이터까지 같이 삭제되는 데이터 손실 문제 정규화 이상 현상을 제거하기 위해서 릴레이션을 의미 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정이다. 이때 함수적 종속성을 판단하여 정규화를 진행한다. 함수적 종속성이란 속성들 간의 관련성을 이야기하는데, 이를 이용..

개발/CS 2022.04.16

[DB] 관계 데이터 모델링

관계 데이터 모델이란 개념적 구조를 논리적 구조로 표현하는 논리적인 데이터 모델이다. 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장한다. 관계 데이터 모델의 기본 용어 릴레이션 (relation) 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것 속성 (attribute) 릴레이션의 열 튜플 (tuple) 릴레이션의 행 도메인 (domain) 하나의 속성이 가질 수 있는 모든 값의 집합 속성 값을 입력, 수정할 때 적합성 판단 기준이 된다. 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다. 널 (null) 속성 값을 아직 모르거나 해당 값이 없음을 표현한다. 차수 (degree) 릴레이션에서 속성의 전체 개수 카디널리티 (cardinality) 릴레이션에서 튜플의 전체 개수 릴..

개발/CS 2022.04.14

[DB] 개념적 데이터 모델링

데이터베이스 설계 사용자의 요구 사항을 고려하여 데이터베이스를 생성하는 과정 설계 과정 중에 오류가 발견되어 변경이 필요하면 이전 단계로 돌아가서 설계 내용을 변경할 수 있다. 1단계 : 요구 사항 분석 - 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악한다. (요구 사항 명세서) 2단계 : 개념적 설계 - DBMS에 독립적인 개념적 구조를 설계한다. (E-R 다이어그램) 3단계 : 논리적 설계 - DBMS에 적합한 논리적 구조를 설계한다. (릴레이션 스키마) 4단계 : 물리적 설계 - DBMS로 구현 가능한 물리적 구조를 설계한다. (물리적 스키마) 5단계 : 구현 - SQL 문을 작성하고 DBMS에서 실행하여 데이터베이스를 생성한다. 데이터 모델링 (data modeling)..

개발/CS 2022.04.12

[DB] DBMS - 데이터베이스 관리시스템 (DataBase Management System)

데이터베이스 관리시스템이 등장하기 전은 파일 시스템을 사용해왔다. 그러면 데이터베이스 관리시스템을 알아보기 전에 간단하게 파일 시스템이 무엇인지 알아보자. 파일 시스템 - 파일 시스템(file system)이란? 데이터를 파일로 관리하기 위해 파일을 생성, 수정, 삭제, 검색하는 기능을 제공하는 소프트웨어이다. 응용 프로그램별로 필요한 데이터를 별도의 파일로 관리해야 한다. - 파일 시스템의 문제점은? 1. 같은 내용의 데이터가 여러 파일에 중복 저장된다. -> 데이터 중복성 문제 (저장 공간의 낭비와 데이터 일관성, 데이터 무결성을 유지하기 어렵다.) 2. 응용 프로그램이 데이터 파일에 종속적이다. -> 데이터 종속성 문제 (사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 한다.) 3. ..

개발/CS 2022.04.02

[DB] 데이터베이스(DataBase) 기본개념

데이터와 정보의 차이점은? 데이터(data) - 현실 세계에서 단순히 관찰하거나 측정해 수집한 사실이나 값 정보(information) - 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물 Data(데이터) < Information(정보) < Knowledge(지식) < Wisdom(지혜) 정보처리(information processing) - 데이터에서 정보를 추출하는 과정 또는 방법 정보 시스템(information system) - 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어 주는 수단이다. 데이터베이스(database)의 정의와 특징 - 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당한다. - 통합 데이터 : 최소한의 중복만을 허용하는 ..

개발/CS 2022.04.01

[DB] MySQL load data infile 에러 - Error Code: 1262 , Error Code: 1300, Error Code: 2013 해결 방법

제목에 있는 3개의 Error Code는 공공데이터를 이용해서 서울의 상권정보를 csv파일로 아래와 같이 load data infile을 해서 db에 넣으려고 할 때 생긴 에러들이다. load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\"txt or csv 파일명"' into table "테이블명" character set utf8mb4 fields terminated by '구분자' lines terminated by '\r\n' ignore 1 rows; 각각 에러들에 대한 간단한 한 줄 설명을 적을 테니 자신에게 해당되는 내용이면 바로 고쳐보고 그래도 안되면 상세 설명도 읽으면 도움이 될 수도 있을 것이다. 1. Error Co..

개발/CS 2022.03.21

[DB] RDBMS, MySQL, JDBC

이번 주는 데이터베이스에 관해서 공부했다. 대학교 3학년 때 전공 수업으로 기초 데이터베이스를 배운 적이 있어서 어렵지 않게 공부할 수 있었던 것 같다. 다음 주에는 배운 DB를 바탕으로 간단하게 프로젝트에 연동시켜보고 백엔드에 대해 공부를 시작할 것 같다. RDBMS (Relational DataBase Management System) RDBMS는 한국말로 직역하면 관계형 데이터베이스 관리 시스템이다. 테이블 기반으로 데이터베이스를 관리하는데 하나의 테이블은 여러 개의 Column으로 구성된다. 같은 데이터가 여러 컬럼이나 테이블에 존재하면 데이터 수정 시에 문제가 발생할 가능성이 높아져 정규화를 통해 문제를 해결할 수 있다. 그렇다고 정규화가 만능은 아니고 때에 따라서 역정규화가 필요로 할 때도 있..

개발/CS 2022.03.19
728x90