착해지는 중 입니다.
[SQL] 관계형 데이터베이스 관리 시스템 본문
관계형 데이터베이스 관리 시스템
- 네트워크형 데이터 모델 - 그물처럼 연결
- 계층형 데이터 모델 - 라인을 따라 연결.
- 관계형 데이터 모델 - 관계로 데이터를 연결
- 정규화를 하게 되면 데이터는 한건만 존재하되 많이 쪼개짐
데이터의 종류
1. 구조적 데이터(Structured data) - 바로 사용할 수 있는 데이터(속성별로 구분된 테이블형태)
정형 데이터라고도 칭함
2. 반구조적 데이터(Unstructured Data) - 정리되지 않은 정보(소셜데이터, 전자메일, 영상, 사진 등)
비정형 데이터라고도 칭함 / XML사용자가 커스텀할 수 있는 것을 만들 수도 있음(확장가능),
JSON 가벼워서 프로그램 간의 데이터를 주고받기 편하다. 한 프로그램에 종속적이지 않다.
https://www.json.org/json-en.html
데이터 모델
1) 개념
단순화 추상화해서 체계적으로 표현
데이터, 데이터의 관계
2) 분류
개념적 데이터 모델
논리적 데이터 모델
물리적 데이터 모델
실제 데이터베이스화 시키는 것
3) 목적
클라이언트의 머릿속의 개념, 시스템, 비즈니스를 표현하는데 도움이 되는 모델(
커뮤니케이션의 예제가 됨
스키마
스키마는 데이터베이스에서 데이터 구조, 데이터베이스 개체 간의 관계, 제약 조건 등을 정의하는 것입니다.
데이터베이스의 구조를 설계하고 정의하는 데 사용됩니다.
NoSQL?
스키마가 없거나(non) 약한(weak) 경우에는 자유롭다
장점 : 데이터의 유연성이 증가, 빠르게 변화하는 비정형데이터에 대응할 수 있다.
단점 : 일관성과 안정성에 대한 보장이 낮음
스키마가 강한 모델은 칼럼이 정해지면 그 칼럼이 그대로 가야 한다.(Null이라도 채워야 함.)
4) 엔티티-관계 모델(E-R모델)
엔티티 - 관심 있는 중요한 어떤 것(product 같은), 유무형의 정보, 연관된 몇 개의 속성으로 구성
속성 - 관심 있는 엔티티를 설명, 분류, 기술하는 것
( ex. 학생의 속성- 학사관리시스템에 필요한 학생의 속성)
관계 - 선택가능성 엔티티 간의 관계(1:M) / 개수(카디날리티), 최소 1개 최대 1~여러 개
( ex. 학생의 수강- 반드시 들어야 하거나 듣지 않아도 되거나)
상대 엔티티와 관련될 수 있는 레코드 수(최대와 최소 두 가지가 있음)
Optionalltiy and Cardinarlity
개념적 모델링에서 관계모델로 변환되었을 때 1:n의 관계인경우 키값이 참조값으로 들어감/ 참조제약조건 걸어야 함.
참조 제약 조건을 참조 무결성을 보장하기 위해 외래 키에 걸 수 있습니다. 이를 통해 부모 테이블에 존재하지 않는 값을 가진 자식 테이블의 행이 삽입되는 것을 방지할 수 있습니다.
관계형 데이터베이스
관계형 모델의 구성 요소
관계 - relation와 relationship(데이터의 집합)은 다르다.
학생 relationship은 학생이라는 전체를 추성 화해서 표현한 것을 2차원테이블에 넣은 것.
연산자 - 쿼리, 조인, 프로젝션, 합집합, 차집합
데이터 무결성 - 일관된 데이터를 가지고 있다 , 그러기 위해서 제약조건이 필요
관계형 모델의 주요 특징
관계형 데이터 베이스의 정의
데이터베이스는 데이터를 모아둔 것 / 2차원 테이블의 컬렉션(body)
ex) 회사의 모든 사원에 대한 정보 관리
-제품 릴레이션(테이블), 부서, 급여 etc...
SQL구조화된 정의 언어
SQL은 제품에 대한 매뉴얼이라고 볼 수 있고 DB에서만 사용됨.
기능이 다르고 명령이 다르지만 기본적으로 정해진 기능이 있음.
JAVA는 프로그램 언어이지만 Tool! sQL은 질의 언어
사용하는 이유
프로그래밍 언어 패러다임
오라클 메뉴얼
https://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm
1~9장까지는 기본 문법
10장 ~ 19장 참고 문서
나머지는 부록
A부록 Syntax로 예를 보여줌
https://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_syntx001.htm#SQLRF55485
Select절의 Diagrams
https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_10002.htm#SQLRF01702
SQL처리과정
1) SQL 처리 단계
❓ soft pasing에서 같은 문장인지 어떻게 알아??
먼저 문장을 해쉬값으로 변환 후 비교. 문장이 똑같으면 해쉬값이 같음.
해쉬값을 비교해서 같은 문장여부를 판단