DBMS 5

반정규화

1. 반정규화 정규화된 엔티티타입, 속성, 관계를 시스템의 성능향상, 개발 운영의 단순화를 위해 모델을 통합하는 프로세스 장점: 모든 엔티티타입, 속성, 관계가 반드시 한 개만 존재하므로 데이터 값이 변질되거나 이질화 될 가능성이 없다. 단점 : 여러 테이블이 생성되어야 하므로 SQL 작성이 용이하지 않고 과다한 테이블 조인이 발생해 성능이 저하될 가능성이 높다. 장점: 여러 개의 테이블이 단순해져서 SQL 작성이 용이하고 성능이 향상된다. 단점 : 같은 데이터가 여러 테이블에 걸쳐 존재하므로 무결성이 깨질 수 있다. 2. 테이블 반정규화 1:1 관계의 테이블 병합 1:N 관계의 테이블 병합 수퍼/ 서브 타입 테이블 병합 수직 분할 (컬럼) 수평 분할 (행) 테이블 추가 3. 컬럼 반정규화 자주 조회하는..

DBMS/이론 2020.10.21

DB 설계

1. 설계의 목적 관련 조직의 정보 요구에 대한 정확한 이해 분석자 개발자 사용자 간의 원활한 의사소통 수단 데이터 중심의 분석 방법 신규 시스템 개발의 기초 제공 2. 요구사항 분석 사용자의 요구사항을 수집하고 분석해서 기능 명세서를 작성 ex) 회원으로 가입하려면 아이디, 비밀번호, 성명을 입력해야한다. 3. 개념적 설계 요구사항 명세서에서 데이터베이스를 구성하는데 필요한 개체, 속성, 관계를 추출하여 ERD를 생성 3.1 개체와 속성 추출 3.2 개체 간의 관계 추출 3.3 ERD 생성 4. 논리적 설계 4.1 모든 개체는 릴레이션으로 변환 ​ 개체 -> 테이블 속성 -> 테이블의 속성 4.2 N:M 관계는 릴레이션으로 변환 ​ 관계 -> 릴레이션 이름 관계속성 -> 릴레이션 속성 4.3 1:N 관..

DBMS/이론 2020.10.21

JDBC API

JDBC API, DAO Pattern 목표 : 상품정보를 DB에 저장하고, 검색, 수정, 삭제 하는 프로그램 구현 1. 상품 정보를 저장할 수 있는 테이블을 구성(기존의 product 테이블에서 작업) 2. 상품관리를 할 수 있도록 클래스를 설계 DAO.java: 상품 정보 기능들의 추상메소드들을 정의하고 있는 인터페이스 Product.java: 상품 정보를 저장하는 클래스 ProductDAO.java : 상품 정보를 DB에 CRUD (상품정보 저장, 전체조회, 상세조회, 수정, 삭제기능) 하는 클래스 Test.java : 위 클래스들이 잘 작동하는지 테스트 하는 클래스 import java.util.List; public interface DAO { public void insertProduct(in..

DBMS/MySQL 2020.04.01

함수, 그룹핑, DML, DDL

-- 1. 상품정보를 저장할 수 있는 테이블을 구성하여 보자.(상품코드, 상품명, 상품가격 등) create table product (procode int , proname varchar(20), proprice int); -- 2. 상품 데이터를 5개 이상 저장하는 SQL을 작성하여 보자. ( 상품명에 TV, 노트북 포함 하도록 하여 5개 이상) insert into product (procode,proname,proprice) values(1,'TV1',200000); insert into product (procode,proname,proprice) values(2,'TV2',300000); insert into product (procode,proname,proprice) values(3,'TV..

DBMS/MySQL 2020.04.01

SQL

-- 1) 입사일이 2014년도인 사람의 모든 정보를 검색하세요 select * from emp where HIREDATE like '2014%'; -- 2) 이름 중 S자가 들어가 있는 사람만 모든 정보를 검색하세요. select * from emp where ename like '%S%'; -- 3) 커미션이 NULL인 사람의 정보를 검색하세요. select * from emp where comm is null; -- 4) 30번 부서의 연봉을 계산하여 이름, 부서번호, 급여, 연봉(12개월 월급여+연말보너스)을 검색하세요. 단, 연말에 급여의 150%를 보너스로 지급한다. select ename 이름, empno 부서번호, sal 급여, sal*12 + sal*1.5 연봉 from emp where..

DBMS/MySQL 2020.04.01