자 오늘은 데이터베이스의 언어와 그리고 데이터베이스의 구조가 어떻게 되어있는지! 살펴보자!
데이터베이스에는 3가지 종류의 언어가 있다.
Data Definition Languages (DDL)
스키마를 정의하는 언어로 사용한다.
create table
drop column
Data Manipulation Languages(DML)
인스턴스를 조작하는 언어이다.
Retrieve
Inster
Delete
Change
Data Control Languages(DCL)
데이터베이스를 제어하는 언어이다.
테이블의 권한을 부여하고 회수하는 작업을 한다.
인스턴스를 조작하는 DML에 초점을 두면 순차적인 언어(Proedural)와 비순차적인 언어(nonprocedural) 언어로 나눌 수 있다.
procedural
어떤 데이터가 필요한지? 그 데이터를 어떻게 가져올 것인지?? 를 다루는 과정
내부적으로 사용하는 언어로 대표적으로 Relational Algebre
가 있다.
nonprocedural
오로지 어떤게 필요한지만 선언한다. 다른말로는 Declrative 언어라고도 불린다. 외부와의 소통을 하기 위해 사람이 보기 쉽게 만들어진 언어이다. 대표적으로는 SQL
이 있다.
실제로 DBMS에서는 사용자에게 외부적으로 SQL
을 입력받아 내부적으로느 Algebra
로 바꾸어서 사용하고 있다.
쿼리란 데이터베이스의 정보를 검색하기 위해 던지는 질문 이라고 생각하면 된다.
데이터베이스의 내부에 ~~~한 데이터가 있나요?? 아니면
a와 형태가 같은 데이터가 있나요?? 이 부분의 이름이 이거인가요??
이런식으로 질의를 던지는 것을 Query라고 합니다!!!!
어떻게 보면 쿼리는 데이터를 조작하는 것과 같이 때문에
DML의 일부이며 때때로 query Language는 DML 이라고도 한다😎
엄청 자세하게는 나중에 알면되고 여기서의 핵심은
Query Processing
사용자에게 SQL문을 분석하고! 비순차적 언어인 Algebra로 바꿔주는 역할을 한다.그 후 최적화! 한다음에 스토리지 매니저와 통신을 해서 평가 후 query의 출력을 도와주는 과정을 처리한다.
Stroage Management
Query Processing을 통해서 들어온 정보를 OS의 파일매니저(Disk Storage)와 상호 작용하고 효과적인 저장과 데이터의 업데이트를 위해 노력한다! 그렇기 때문에 속도에 따라 좋은 성능을 유지하고, 구조화와 인덱싱과 해싱의 부분을 신경써야 한다.
위 글은 공부하며 작성한 글이므로 내용상의 오류가 있을 수 있습니다.
잘못된 부분은 덧글로 이야기 해주세요😀