데이터베이스 제4강

Sunhee·2024년 3월 25일
0
post-thumbnail

자료 모델(data models)

개체-관계 모델 (E-R: entity-relationship model)

  • 실제 세계에 대한 인식에 바탕을 두고 있음.
  • "개체(entity)","`개체와 개체 사이의 관계(relationship)"이 두 가지를 기본으로 하고 있음.

관계형 모델(=모형) (relational model)

  • "자료(data)"와 "자료 사이의 관계(relationship)"를 관계(relation = 테이블:table)로 나타냄.
  • 구조가 간단해서 이해하기가 쉬우며, 데이터 조작 면에서도 명확하다.
  • 오늘날 가장 널리 쓰고 있는 관게형 데이터베이스의 모델

네트웍 모델(network model)

  • 데이터와 데이터간의 관계는 링크(link)로 표현하며, 일반 그래프의 설징을 갖는다. (방향성 O)
  • 링크로 연결된 레코드 타입들은 오너-멤버 관계를 갖느다.
  • 오너 레코드와 멤버 레코드 사이에는 1:n의 관계를 갖는다.

계층적 모덱(hierarchical model)

  • 데이터와 데이터간의 관계는 링크(link)로 표현되며, 트리(tree)형태로 조직된다.(방향성 X)
  • 하나의 링크로 연결된 두 레코드 사이에는 1:n의 부모-자식(parent-child) 관계를 갖는다.

객체 지향 모델 (OO model, object-oriented model)

  • 객체-관계 모델 개념을 많이 포함.
  • 객체 개념을 데이터베이스에 적용
    • 자료뿐만 아니라 실행할 수 있는 프로그램까지 모두 포함

자료 정의어(DDL)와 자료 조작어(DML)

자료 정의어 (DDL: data-definition language)

  • 자료 정의어 : 스키마를 정의하는 언어
  • SQL에서 자료 정의어의 보기

create table 학생 (학생 char(7), 이름 char(20));


자료 조작어 (DML: data-manipulation language)

  • 데이터베이스 안에 있는 자료를
    • 검색하거나 (select),
    • 없애거나 (delete),
    • 바꾸거나 (update),
    • 새 자료를 넣는 (insert) 일을 한다.

자료 조작어 (DML)의 보기

Select * From 학생 Where 이름='홍길동';
insert into 학생 Values('9902101', '홍길동');
delete From 학생 Where 이름='홍길동';
update 학생 set 이름 = '장길산' where 이름='홍길동';


자료 조작어의 성질: 비절차적, 집합 결과

두 가지 독립적인 기준에 따라서 나눌 수 있으며 그 결과 네가지(=2*2)로 나눌 수 있다.

  • 절차적(procedural) / 비절차적(non-procedural)
    • 절차적 자료 조작어 : 사용자가 무슨 데이터(what data)를 원하며, 어떻게(how) 그것을 접근해야 되는지 명세(관계재수, 계층적 모델, 네트웍 모델)
    • 비절차적 자료 조작어 : 사용자가 무슨 데이터(what data)를 원하는 지만 명세하고 그것을 어떻게(how) 접근할 것인가에 대해서는 명세할 필요가 없음.(관계해석, SQL)
    • 한 번에 레코드가 한 개씩 나오는지(record-at-a-time) / 여러 개의 자료가 한꺼번에 나오는지(set-at-a-time)

절차적 조작어 / 비절차적 조작어

`create table 수강 (학번 char(7), 과목번호 char(5), 성적등급 char(1));

  • 수강 테이블에서 성적등급이 'A'인 모든 학생의 학번을 찍어내는 방법
    • 절차적 조작어 : 관계대수
    • 비절차적 조작어 : SQL

절차적 조작어 : 관계대수를 이용하여 테이블에서 성적등급이 'A'인 모든 학생의 학번을 찍어내는 방법

  • 성적등급이 'A'인 줄을 먼저 찾고 난 뒤, 속성 세 개 가운데 학번 속성만 찍는다.
  • 이 순서(=절차)는 사요자가 지정

비절차적 조작어 : SQL언어를 이용하여 테이블에서 성적등급이 'A'인 모든 학생의 학번을 찍어내는 방법

  • 절차(순서)는 전혀 나와 있지 않음
  • 비절차적 조작어라고 부름

자료 조작어의 명령 결과가 집합인 자료 조작어

  • 관계대수, 관계해석 명령의 결과

  • SQl 명령의 결과
    select* from 수강 where 과목번호 = 'CS123';


자료 조작어의 명령 결과가 레코드 한 개인 자료 조작어

  • 계층적 모델이나 네트워크 모델의 자료 조작어
  • 여러 개의 레코드를 처리하고자 하면, 일반 고급 프로그래밍 언어에서처럼 레코드를 가져오는 명령을 loop안에서 되풀이하여야 실행

용어:질의어(query language)와 자료 조작어(DML)

질의어(query)

  • 사전적 의미 : '물어보다'
  • 데이터베이스 : '이미 있는 자료나 정보를 가져오는 것'
  • SQL에서 보면 select만 해당되고, insert, delete, update는 해당되지 않는다.

자료 조작어(DML)

  • 질의어보다 더 넓은 개념
  • 있는 자료를 지우거나 고치는 것, 새 자료를 넣는 것 포함
  • SQL에서 보면 select, insert, delete, update를 모두 포함

0개의 댓글

관련 채용 정보