티스토리 뷰

DB 설계, 구축, mysql 특강 (정영훈 튜터님)

DB, DBMS, SQL 개념

  • DB(Database): 데이터의 집합
  • DBMS(Database Management System): 데이터베이스를 관리하고 운영하는 소프트웨어
    • 종류: MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, DB2, Access, SQLite, ...
    • 분류: 계층형, 망형, 관계형(Relational DBMS, RDBMS: 대부분의 DBMS의 형태로 table이라는 최소 단위로 구성됨)
  • SQL(Structured Query Language): 관계형 DBMS에서 사용되는 언어
    • 표준 SQL이 있고 DBMS의 종류마다 방언처럼 다른 부분도 존재
    • SQL: 데이터를 정해진 틀(data schema)에 따라 테이블에 저장 → 데이터 무결성 보장 & 중복 X, but 유연성↓
    • NoSQL: 데이터를 자유롭게(schema-less) 다양한 형태로 저장 → 유연성↑↑, but 중복 관리, 수정 편의성↓

SQL 연습

-- 데이터 베이스 생성
CREATE DATABASE sparta_test;

-- 학생 테이블 생성
CREATE TABLE sparta_test.student(
    id int PRIMARY KEY AUTO_INCREMENT,
    name varchar(50) NOT NULL,
    email varchar(50) UNIQUE
)

-- 학생 데이터 입력
INSERT
    INTO
    student (name, city_id)
VALUES
('김민수', '1'),
('표정훈', '2'),
('이혜원', '3');

-- 학생 테이블 수정(city_id)추가 및 외래키 등
ALTER TABLE student ADD COLUMN city_id int,
ADD CONSTRAINT `fk_city_table_id` FOREIGN KEY student(city_id) REFERENCES city(id);

-- 도시 테이블 생성
CREATE TABLE sparta_test.city(
    id int PRIMARY KEY AUTO_INCREMENT,
    name varchar(50) NOT NULL
)

USE sparta_test;

-- 도시 데이터 입력
INSERT
    INTO
    city (name)
VALUES
('서울'),
('도쿄'),
('뉴욕'),
('상하이'),
('파리');

-- 학생 이름, 도시 join해서 보기
SELECT s.name, c.name
FROM student s
INNER JOIN city c 
ON s.city_id = c.id

-- 학생 이메일 업데이트
UPDATE
    student
SET
    email = 'kms@naver.com'
WHERE
    id = 3

-- 학생 검색 (이메일)
SELECT
    *
FROM
    student s
WHERE
    email LIKE "%@naver%"
    -- like 연산자의 %, _: 와일드 카드
    -- WHERE email IS NULL
    -- WHERE email IS NOT NULL

-- 학생 데이터 삭제
DELETE
FROM
    student

 

데이터베이스 설계 순서

1. 요구조건 분석: 현실 세계의 대상 및 사용자의 요구 등을 정리 및 분석

 

2. 개념적 모델링: 개체와 개체들 간의 관계에서 ER다이어그램을 만드는 과정

  • ERD(Entity-Relation Diagram: 개체 관계도) 작성 예시

 

 

3. 논리적 모델링:  ER다이어그램을 사용하여 관계 스키마 모델을 만드는 과정

  • 관계 스키마 모델 작성 예시

4. 물리적 모델링: 관계 스키마 모델의 물리적 구조를 정의하고 구현하는 과정

 

5. 데이터베이스 구현

정규화(Normalization)

개념적 모델링을 통해 구분한 중요 개념을 구체화하는 논리적 모델링의 과정 중 하나

목표: 중복 데이터는 없애고, 데이터 간의 관계를 단순하게 만든다

 

제1정규화: 원자성

제2정규화: 완전 함수적 종속 (부분 종속 제거)

제3정규화: 이행 종속 제거

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함