SQL 첫걸음 7

[SQL 첫걸음] 8장.데이터베이스 설계 - 36.트랜잭션

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 트랜잭션- 발주처리의 예로 주문이 발생했을 경우, 주문 테이블에는 INSERT 한 번, 주문상품 테이블에는 주문된 상품 수 만큼 INSERT명령이 실행됨.ex) 발주처리INSERT INTO 주문 VALUES(4, '2018-09-30', 1); INSERT INTO 주문상품 VALUES(4, '0003', 1); INSERT INTO 주문상품 VALUES(4, '0004', 2);이때, 세 번째 INSERT 명령에서 에러가 발생했다고 치면, 트랜잭션 기능을 사용하지 않을 경우. 앞서 실행한 두 개의 INSERT명령에 의해 주가된 데이터를 DELETE명령으로 삭제하는 처리가 필요함. 이는 매우 번거로움. 2. 롤백과 커밋- 위 경우..

Study/DB 2018.09.30

[SQL 첫걸음] 8장.데이터베이스 설계 - 35.정규화

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 정규화- 정규화란 데이터베이스의 테이블을 규정된 올바른 형태 개선해나가는 것. - 정규화는 데이터베이스 설계 단계에서 행해짐. 경우에 따라서 기존 시스템을 재검토할 때 정규화하는 경우도 있음.- 정규화하는 과정을 통해 관계형 데이터베이스가 효율적으로 동작하도록 만들 수 있음. 2. 제1정규형- 첫 번째 단계가 제1 정규화로, 이를 시행하면 제1 정규형 테이블을 만들 수 있음. 제1정규화의 1단계 : 하나의 셀에 하나의 값만 저장할 수 있도록하고, 반복되는 부분을 세로(행 방향으로 늘려나간다. - 주문상품 열에 있는 값들을 상품코드와 상품명, 개수 데이터를 담는 3개의 열로 나눔. - 한번의 주문으로 여러 개의 상품을 주문할 수 있..

Study/DB 2018.09.30

[SQL 첫걸음] 8장.데이터베이스 설계 - 34.데이터베이스 설계

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 데이터베이스 설계- 데이터베이스를 설계한다는 것 : 데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것. 스키마 내에 정의한다는 뜻에서 '스키마 설계'라 불리기도 함.- 테이블 설계의 주된 내용은 테이블 이름이나 열, 자료형을 결정하는 것. 테이블 간의 관계를 생각하며 여러 테이블을 정의하고 작성. - 논리명과 물리명 : 물리명은 CREATE TABLE에 지정하는 테이블 이름이나 열 이름. 논리명은 설계상의 이름.- 자료형 : 금액이나 개수처럼 수치 데이터만 다룰 수 있는 열은 수치 자료형으로, 제조번호처럼 알파벳도 다루어야 한다면 문자열형으로 지정 (수치형을 문자열형으로 변환하는것은 문제가 되지..

Study/DB 2018.09.30

[SQL 첫걸음] 7장.복수의 테이블 다루기 - 32.테이블 결합

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 곱집합과 교차결합- 곱집합 : 두 개의 집합을 곱하는 연산 방법으로 '적집합' 또는 '카티전곱(Cartesian product)'이라고도 불림. 곱집합은 야구팀들의 대전표를 짜는 것과 비슷한 개념. - 집합 X가 {A,B,C}라는 요소를 가지고, 집합 Y가 {1,2,3}이라는 요소를 가질 때 집합 X와 Y의 곱집합을 구하면 아래와 같음. 교차결합(Cross Join)SELECT * FROM 테이블명1, 테이블명2 - 데이터베이스의 테이블은 집합의 한 종류라 할 수 있음. 만약 SELECT명령의 FROM구에 테이블을 두 개 지정하면 이들은 곱집합으로 계산됨. - FROM 구에 복수의 테이블을 지정하면 교차결합을 함. 교차결합은 두 ..

Study/DB 2018.09.27

[SQL 첫걸음] 7장.복수의 테이블 다루기 - 31.집합 연산

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. SQL과 집합- SELECT 명령을 실행하면 데이터베이스에 질의하며, 그 결과 몇 개의 행이 반환됨.이때 반환된 결과 전체를 하나의 집합으로 , 집합 내 하나의 행을 하나의 요소로 볼 수 있음. 2. UNION으로 합집합 구하기- 집합의 연산 중 '합집합'은 집합을 서로 더한 것을 의미. A U B 로 표기. - SQL에서는 SELECT명령의 실행 결과를 하나의 집합으로 다룰 수 있음. 합집합을 계산할 경우에는 UNION 키워드를 사용. SELECT * FROM sample71_a; > 결과 a 1 2 3 SELECT * FROM sample71_b; > 결과 b21011 - 두 개의 SELECT명령을 UNION해서 합집합 구하기..

Study/DB 2018.09.27

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 30.뷰 작성과 삭제

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 뷰- 뷰는 SELECT 명령을 기록하는 데이터 베이스 객체.- 본래 데이터베이스 객체로 등록할 수 없는 SELECT명령을, 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰. 뷰를 참조하면 그에 정의된 SELECT명령의 실행결과를 테이블처럼 사용할 수 있음. - 뷰를 정의할 때는 이름과 SELECT명령을 지정. 뷰를 만든 후에는 SELECT명령에서 뷰의 이름을 지정하면 참조 가능. 사용 ex) SELECT * FROM (SELECT * FROM sample64) sq; -> from 구에 서브쿼리 사용서브쿼리 부분을 '뷰 객체'로 만들면 SELECT * FROM sample_view_67; -> sample_view_67은 뷰의..

Study/DB 2018.09.27

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 28.인덱스 구조

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 인덱스- 인덱스는 테이블에 붙여진 색인. 인덱스의 역할은 검색속도의 향상.- 테이블에 인덱스가 지정되어 있으면 효율적으로 검색할 수 있으므로 WHERE로 조건이 지정된 SELECT 명려으이 처리 속도가 향상됨. - 책의 목차나 색인이 인덱스와 비슷. 책 안에 있는 특정 부분을 찾을 때 본문을 처음부터 읽어나가기보다 목차나 색인을 참고해서 찾는 편이 효율적. 인덱스가 바로 이런 역할을 함.인덱스의 구조도 목차나 색인과 비슷. 목차나 색인에 제목ㆍ키워드별 페이지 번호 적혀있듯, 데이터베이스의 인덱스에는 검색 시에 쓰이는 키워드와 대응하는 데이터 행의 장소가 저장되있음.- 인덱스는 테이블과는 별개로 독립된 데이터베이스 객체로 작성됨. ..

Study/DB 2018.09.16