착해지는 중 입니다.

[SQL] 관계형 데이터베이스 관리 시스템 본문

카테고리 없음

[SQL] 관계형 데이터베이스 관리 시스템

박쓸개 2024. 5. 1. 18:26

 

관계형 데이터베이스 관리 시스템

  1. 네트워크형 데이터 모델 - 그물처럼 연결
  2. 계층형 데이터 모델 - 라인을 따라 연결.
  3. 관계형 데이터 모델 - 관계로 데이터를 연결
    - 정규화를 하게 되면 데이터는 한건만 존재하되 많이 쪼개짐

데이터의 종류

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

 

Database SQL Language Reference - Contents

 

docs.oracle.com

1~9장까지는 기본 문법

10장 ~ 19장 참고 문서

나머지는 부록

 

A부록 Syntax로 예를 보여줌

https://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_syntx001.htm#SQLRF55485

 

Graphic Syntax Diagrams

Syntax diagrams are drawings that illustrate valid SQL syntax. To read a diagram, trace it from left to right, in the direction shown by the arrows. Commands and other keywords appear in UPPERCASE inside rectangles. Type them exactly as shown in the rectan

docs.oracle.com

 

Select절의 Diagrams

https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_10002.htm#SQLRF01702

 

SELECT

Purpose Use a SELECT statement or subquery to retrieve data from one or more tables, object tables, views, object views, or materialized views. If part or all of the result of a SELECT statement is equivalent to an existing materialized view, then Oracle D

docs.oracle.com

 

SQL처리과정 

1) SQL 처리 단계

❓ soft pasing에서 같은 문장인지 어떻게 알아?? 
먼저 문장을 해쉬값으로 변환 후 비교. 문장이 똑같으면 해쉬값이 같음.
해쉬값을 비교해서 같은 문장여부를 판단