전공 과목 이수2👨‍💻/데이터베이스

데이터베이스| 데이터베이스언어

천숭이 2021. 3. 26. 15:08

1.4 데이터베이스 언어

데이터베이스 스키마를 기술하는 데이터 정의 언어(data definition language : DDL)

데이터베이스 질의 및 갱신을 표현하는 데이터 조작 언어(data manipulation language : DML)

 

데이터 사전 (data dictionary) = system catalog

 

1.4.1 데이터 조작 언어 (DML)

사용자가 적절한 데이터 모델로 구성된 데이터(인스턴스)를 접근하거나 조작할 수 있도록 하는 언어. 

접근 형태 :

  • 정보 검색/조회
  • 정보 삽입
  • 정보 삭제
  • 데이터 수정/갱신

절차식 DML : 어떤 데이터가 필요하며 , 그 데이터를 어떻게 구할지 지정할 것을 요구한다.

선언적 DML (비절차식 DML) : 필요한 데이터를 어떻게 구할지 명시할 필요 없이, 어떤 데이터가 필요한지만 사용자(개발자)에게 요구

 

1.4.2 데이터 정의언어 (DDL)

데이터의 추가적인 특성을 표현하는 데에도 사용. 이 DDL문들은 데이터베이스 스키마 구현상의 세부 사항을 정의한다.

 

sql문장의 예)

instructor라는 교수테이블을 정의한다. 칼럼(스키마)와 그 자료형을 정해준다

 

DDL은 결과는 메타데이터(data about data) 을 수록하는 데이터 사전에 위치한다

(*메타데이터란 인스턴스에 대한 스키마)

 

무결성(integrity) 제약조건
- 정보(주장 assertion)들이 DBMS를 통과해야하는 조건

주장들의 값이 참일때, DBMS를 통과할 수 있다.

개체무결성 제약조건 Entity Integrity :
존재하는 사실은 유일하게 식별되어야 한다.
primary key(스키마) 생성

참조무결성 제약조건 Relational integrity :
존재하지 않는 사실은 참조하지 않아야 한다.

ISP/BPR -> Entity-Relationship modeling -> Database modeling -> Database
개체무결성/참조무결성 제약조건의 예

1.5 관계형 데이터베이스

1.5.2 데이터 조작 언어

SQL 질의 언어는 비절차적 언어이다.

 

1.5.4 응용 프로그램에서의 데이터베이스 접근

내장형 SQL과 호스트언어(C, C++. JAVA)로 작성된다. 응용프로그램은 데이터베이스와 상호작용하는데 데이터베이스에 액세스하기 위해서는 호스트언어에 있는 DML문이 실행돼야 한다.

DML문 실행하기 위한 두가지 방법 (3~5장 주요내용)

1. C언어를 위한 표준인 ODBD(open database connectivity)가 응용프로그램 인터페이스 (API)표준으로 사용된다. Java를 위한 표준으로는 JDBC(java database connectivity)가 있다.

2. 특정 문자가 DML 호출의 시작을 알리고 DML 선컴파일러라 부르는 처리기가 DML문을 호스트 언어의 프로시저 호출로 바꾸어준다.

명령어 -> 문자열 -> API함수 로 프로그램에서 DB로 접근


1.6 데이터베이스 설계

데이터베이스 설계는 데이터베이스 스키마 설계와 주로 관련된다.

1.6.1 설계단계

데이터의 골격과 구성을 규정하는 요구 명세서 작성 -> 개념적 설계. 스키마 개관을 통해 재검토 및 중복 제거

-> 논리 설계 단계 -> 물리 설계 단계

옆 테이블의 문제점은 정규화되어있지 않다는 것이다. DBMS는 한행을 전체로 인식한다. 삽입,삭제과정에서 데이터 중복이 발성하거나 NULL이 들어가는 상황이 발생하는데 ID는 프라이머리 키이므로 NULL값이 들어갈 수 없다.

정규화x -> insert, delete, update 모두 안됨

 

두개의 주제가 한테이블에 써있다.

매인주제는교수(ID), 네번째열부터 부가주제이다.

정규화를 위해선 테이블을 분리해야 한다. 테이블을 분리하면 insert,delete,update 모두 가능해짐.

 

주의할 점 :

중복발생을 피하기 위해 한가지 주제는 한 테이블에서만 기록돼야 한다.  =  정규화

 


1장요약

  • 데이터베이스 관리 시스템(DBMS)은 서로 관련이 있는 데이터의 모임과 데이터에 접근하기 위한 프로그램의 집합으로 구성된다. 데이터베이스에 정보를 저장하고 효율적인 검색환경을 제공.
  • 데이터의 관리는 정보의 저장을 위한 구조의 정의하는 작업과 정보의 조작을 위한 기법을 제공하는 작업 모두를 포함.
  • 관계형 모델은 데이터베이스에서 데이터를 저장할 때 가장 많이 이용되는 모델.
  • 데이터 조작 언어(DML)는 어떠한 데이터가 필요한지 지정할 것만을 사용자에게 요구한다.
  • 데이터 정의(DDL)는 데이터의 다른 속성뿐만 아니라 스키마를 실체화하는 언어이다.
  • 저장장치 관리자 : db에 저장된 하위 단계의 데이터와 시스템의 응용프로그램 및 질의 사이의 인터페이스를 제공하는 프로그램 모듈
  • 질의 처리기 : DDL문과 DML문을 컴파일하고 실행
  • 트랜잭션 관리는 DB시스템의 장애가 발생해도 일관된 상태로 유지시킨다. 동시 실행 트랜잭션을 충돌없이 실행 가능하도록 한다.