본문 바로가기

IT Study/SQL9

[SQLD] 데이터베이스 이상현상 및 정규화/반정규화 1. 데이터베이스 이상현상 (DataBase Anomaly)정규화되지 않은 테이블에 삽입, 수정, 삭제할 때 데이터의 일관성(Consistency)가 깨지는 현상- Insertion anomaly : 의도치 않은 정보까지 삽입되는 현상- Update Anomaly :중복 저장되어 있는 데이터 중 하나만 갱신되어 데이터가 불일치 하는 현상- Deletion Anomaly : 특정 데이터를 삭제할 때 의도하지 않은 정보까지 삭제되는 현상 -> 이러한 문제를 방지하기 위해 데이터 정규화 방법을 사용 * Entity(논리적 데이터 모델링) = Table(물리적 데이터 모델링) = Relation(관계형 데이터베이스)2. 데이터 정규화- 데이터 중복을 최소화하며, 테이블을 잘 조직된 상태로 분해하는 과정- 데이터.. 2025. 11. 3.
[SQLD] 데이터 모델링의 이해 (모델링,주요요소 트랜젝션) 모델링이란모델링 (Modeling) : 현실세계를 대상으로 일종의 모델(Model)을 만드는 것약속된 표기법을 따라야 한다모델링의 특징1. 추상화 (Abstraction)2. 단순화 (Simpification)3. 명확화 (Clarify)- 중복(Duplication) 최소화- 비유연성(Inflexibility) 최소화 - 데이터 정의와 데이터의 사용 프로세스를 분리해야 한다 - 데이터 독립성 : 데이터를 사용하는 사용자 영역과 데이터를 저장하는 디스크나 메모리 영역을 서로 분리하는 것- 비일관성(Inconsistency) 최소화 모델링의 세가지 관점1. 데이터 관점(대상, What)2. 프로세스 관점(처리방법, How)3. 데이터와 프로세스의 상관 관점(대상과 처리방법의 상관관계, Inter.. 2025. 10. 16.
데이터 베이스의 기초 (용어 정리) 프로젝트를 진행하기 위해서는 대표적으로 폭포수 모델(Waterfall Model)을 사용프로젝트 계획 -> 업무 분석 -> 시스템 설계 -> 프로그램 구현 -> 테스트 -> 유지보수(여기에서 데이터베이스 모델링은 업무 분석과 시스템 설계 단계에 포함된다)용어 정리데이터 베이스 모델링 (DataBase Modeling)세상에 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기는 것 데이터베이스 (DataBase, DB) : 데이터의 집합 DBMS(Database Management System) :데이터베이스를 운영하고 관리하는 소프트웨어여러 사람이 동시에 접근이 가능해야 한다지원 SW : MySQL, Oracle, SQL Serve, MariaDB 등이 있음종류 : 주로 사용하는 것은 관계형 D.. 2025. 9. 5.
[생활코딩 SQL][Database] 관계형 데이터 모델링(part1,2) 데이터 모델링의 순서업무파악 -> 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링 관계형 데이터 베이스 : 정보를 표에 담는 것을 목표로 한다 즉, 데이터 모델링 : 복잡한 현실을 컴퓨터에 담는법 데이터 모델링의 순서1. 업무파악 : 우리가 하려고 하는 일이 뭐냐 (기획서를 뱉는다)2. 개념적 데이터 모델링 : 어떤 개념이 있고 어떻게 상호작용하는지를 파악 (ERD를 뱉는다)3. 논리적 데이터 모델링 : 관계형 데이터 모델링에 맞는 표로써 개념을 전환하는 것 (표를 뱉는다)4. 물리적 데이터 모델링 : 어떤 데이터 베이스제품을 선택할 것인지 (코드를 작성)데이터 모델링이란"데이터를 현실로 부터 뜯어내서 고도의 추상화 과정을 거쳐서 컴퓨터에 담는 것" 업무파악실무자들과 정확.. 2022. 11. 28.
[생활코딩 SQL][MYSQL] JOIN 테이블 분할데이터 규모가 커지면 하나의 테이블로 정보를 담으면 너무 복잡해 져서테이블을 분할하고 테이블 간의 관계성을 부여하는 것이 일반적임. DROP TABLE IF EXISTS student;CREATE TABLE student ( id tinyint(4) NOT NULL, name char(4) NOT NULL, sex enum('남자','여자') NOT NULL, address varchar(50) NOT NULL, distance INT NOT NULL, birthday datetime NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO student VALUES (2, '박재숙', '남자', '.. 2022. 11. 19.
[생활코딩 SQL][MYSQL] order by, group by 아래의 예시로 실습해보자DROP TABLE IF EXISTS student;CREATE TABLE student ( id tinyint(4) NOT NULL, name char(4) NOT NULL, sex enum('남자','여자') NOT NULL, address varchar(50) NOT NULL, distance INT NOT NULL, birthday datetime NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO student VALUES (2, '박재숙', '남자', '서울', 10, '1985-10-26 00:00:00');INSERT INTO student VALUES (1, '이숙.. 2022. 11. 19.