DB

mysql 공부정리(4)

별메아리 2023. 3. 16. 09:42
728x90
-- 관계형 모델
/* 관계형 모델의 기본적인 요소는 릴레이션(Relation)입니다. 관계형 모델의 릴레이션은 sql에서 말하는 테이블에 해당한다
릴레이션=테이블
*/
-- sql에서의 열은 속성(attribute)
-- sql에서의 행은 튜플(tuple)
-- 릴레이션에 대한 연산이 집합의 대한 연산에 대응된다는 이론을 관계대수라고 한다.
/* 관계대수의 규칙
하나 이상의 관계를 바탕으로 연산한다
연산한 결과, 반환되는 것 또한 관계이다.
연산을 중첩 구조로 실행해도 상관없다.

-- 합집합(UNION),릴레이션끼리의 덧셈
-- 차집합(difference),릴레이션끼리의 뺄셈
-- 교집합(intersection),릴레이션끼리의 공통부분
-- 곱집합(cross join), from 구에 복수의 테이블을 지정한 경우
-- 선택 : where구에 조건을 지정해 데이터 검색
-- 투영 : select 구에 결과로 반환할 열을 지정하는것
-- 결합 : 릴레이션끼리 교차결합해 계산된 곱집합에서 결합조건을 만족하는 튜플을 추출하는 연산
*/

-- 데이터베이스 설계
-- 논리명과 물리명
-- 데이터베이스에서 사용될 이름(create table) : 물리명
-- 설계상의 이름 : 논리명
-- 자료형
-- 고정길이와 가변길이 (큰 데이터는 LOB형으로 저장가능 단 인덱스 지정불가능)
-- 기본키
-- ER다이어그램 : 테이블간의 관계를 명확히 하기 위해 설계도를 작성하는 경우 쓰이는 도식

-- 정규화 : 테이블을 올바른 형태로 변경하고 분할하는 것을 정규화라고 한다.
-- 제1정규형 : 반복되는 데이터를 가로(열)가 아닌 세로(행)방향으로 늘리는 것
-- 제1정규화에서는 테이블 분할과 기본키 지정이 이루어진다.
-- 제2정규형 : 키값을 이용해 데이터를 특정지을 수 있는것을 찾아내서 테이블을 분할하는 것
-- 제3정규형 : 기본키 이외에 부분에서 중복이 없는지를 조사한다.alter
-- 정규화의 목적 : 정규화로 데이터 구조를 개선하는 것은 하나의 데이터가 한 곳에 저장되도록 하기 위함

-- 트랜잭션
/* 트랜잭션의 제어
start transaction 트랜젝션 시작
commit 트랜잭션 내에서 실행한 명령을 적용한 후 종료
rollback 트랜잭션 내에서 실행한 명령을 파기한 후 종료
*/
-- 트랜젝션을 롤백하면 변경한 내용이 적용되지 않는다.
-- 트랜젝션을 사용할 때는 자동커밋 기능을 꺼야한다.
-- 트랜젝션을 사용해서 처리하는 것으로 간단히 데이터를 관리할 수 있다.
-- 예) 트랜젝션 내에서의 발주처리
/* start transaction;
insret into 주문 values(4,'2014-03-01',1);
insret into 주문상품 values(4,'0004',1);
insret into 주문상품 values(4,'0004',2);
commit;
*/
-- 세트로 실행하고 싶은 sql 명령은 트랜젝션 내에서 실행한다.
728x90