צעדי חסד

What is the DataBase 본문

CS/데이터베이스

What is the DataBase

טוֹבָה 2023. 10. 3. 19:40
//Login as admin with 'sys'
>sqlplus sys/oracle as sysdba
>show user; //hr
//user changed at 'hr'
>alter user hr identified by hr account unlock;
>show user; //'hr'

//Run as sqlplus with 'system/oracle'
>sqlplus system/oracle
>CREATE USER university IDENTIFIED by comp322;
>GRANT create session, create table to university;
>exit;

>sqlplus "universty"/"comp322"
>SELECT * FROM SESSION_PRIVS order by PRIVILEGE asc;
//CREATE SESSION
//CREATE TABLE

>CREATE TABLE Student
(
	Name VARCHAR(10),
	Student_number NUMBER,
	Class VARCHAR(5),
	Major VARCHAR(5)
);
//Table created
>commit;

>conn system/oracle;
>GRANT ALL PRIVILEGES to UNIVERSITY IDENTIFIED BY comp322;
>conn university/comp322;
>INSERT INTO Student VALUES <'smith', 20, '1', 'cs');
>commit;

Chapter 1: Databases and Database Users

 

1. "Data"란 무엇인가?

- 알려진 사실로써, 어떠한 의미를 내포하고 있으며, 저장가능한 것이다.

2. "Database(DB)"란 무엇인가?

- 관계있는 데이터들의 집합이다.

3. "DBMS"이란 무엇인가?

- DB+DB Applications

Recent Developments: Hadoop (1 / 3)

Recent Developments: Apache Spark (3 / 3)

 

Main Characteristics of the DB Approach (5steps)

1. Self-describing nature of a DB system

- DBsystem에는 DB자체뿐만 아니라, DB구조, 유형 및 제약 조건에 대한 정의가 포함 돼 있다.

- Catalog : 특정 DB에 대한 data이라는 설명을 저장한다.

 

2. Insulation between programs and data

- program과 data사이의 독립성

- 데이터 구조 및 저장 구성을 변경하지 않고도 변경가능하다.

 

3. Data abstraction

- data model : data추상화에 대한 타입

주로, (1) 저장소의 디테일한 정보를 숨기거나 (2) 현재 유저가 가지고 있는 DB에 대한 개념

 

4. Support of multiple views of the data

- 유저는 자신이 저장된 정보만 볼 수 있다.

 

5. Sharing of data and multiuser transaction precessin

- 여러 사용자가 디비에 접속해서 정보를 조회하고 업데이트 할 수 있도록한다.

 

 

Chapter 2: Database System Concepts and Architecture 

Data Models, Schemas, And Instances

  • Data Models
    • 데이터 추상화에 필요한 방법을 제공한다.
    • 설명할 개념 집합을 나타낸다.
    • 구체적으로, 구조를 가리킨다. -> data types, relationships, constraints
  • Data schemas
    • Database의 표현 : DBMS의 catalog를 저장한다.
    • database structure, data type, data constraints포함한다.
    • 스키마 구조 : 스키마의 구성 요소 또는 스키마 내의 개체 ex.  STUDENT, COURSE
  • Database State(or extension)
    • 특정 시점에 DB에 저장된 실제 데이터
    • "Instance" 는 또한 다음처럼 부를수도있다. 개별 데이터 베이스 구성 요소에도 적용될 수 있음.

 

DATABASE LANGUAGES AND INTERFACES

DBMS Language: DDL

- 데이터 조작어 : 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어(INSERT, UPDATE, DELETE)

DBMS Language: DML

- 데이터 정의어 : 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들( CREATE, ALTER, DROP, RENAME, TRUNCATE)

 

Centralized DBMS

 



구체적으로 구조는 다음과 같은 것들을 가리킨다.
1. 데이터 타입
2. 관계
3. 제약

구체적으로 운영(Operations)는...
1. 데이터베이스의 업데이트는 규제를 사용한다.
2. 기본적인 동작은 사용자정의(user-defined) 운영 방식을 따른다.
ex. CRUD

• Data Model Structure and Constraints:
1. Constructs : DB structure를 따른다.
2. Constructs는 다음을 포함한다.
(1) elements(entity, record)
(2) relationships
3. "Valid" data에 대한 몇 가지 제한사항을 지정한다.
(1) 위와 같은 제약사항은 "항상" 시행되어야 한다.
(2) 그렇지 않으면 데이터가 지정된 데이터 모델을 준수한다고 말할 수 없다.

Categories of Data Models
1. Conceptual(high-level, semantic) data models
2. Physical(low-level, internal) data models
3. Implementation(representational, logical) data models

Schemas vs. Instances
Database Schema(intension or meta-data)
데이터베이스의 표현 : DBMS의 카테고리를 저장한다.
좀 더 포괄적으로, 데이터베이스 구조, 데이터 타입, 데이터베이스 제약 조건
Schema construct : 스키마의 구성 요소 또는 스키마 내의 개체

Database State(or extension)
특정 시점에 데이터베이스에 저장된 실제 데이터이다. 데이터베이스의 모든 데이터 모음을 포함한다. 이를 DataBase instace(or occurrence or snapshot)이라고 한다.
"Instance": 개별적인 데이터베이스의 요소들
ex. record instace, table instance, entity instance
(1) Initial Database State : DBMS에 처음 로드 될 때의 데이터베이스의 상태
(2) Valid State : DB의 "구조" 와 "제약 조건"을 만족하는 상태



THREE-SCHEMA ARCHITECTURE AND DATA INDEPENDENCE 


Three-Schema Architecture
C1) catalog를 사용해서 스키마를 Self-Describe
C2) Program-Data OR Program-operation independence
C3) Multiple user views 지원


DBMS의 schemas는 다음의 세 가지 Level로 정의
1. Internal(=physical) schema(at the internal level) : 물리적인 데이터 모델
2. Conceptual(=logical) schema(at the conceptual level) : Conceptual(e.g. ER) of an implementation(e.g. relational) data model
3. External(=view level) schema(at the external level) : i.e. Various user applications
Mappings(on terms) : 스키마 수준 간의 Mapping은 Req, data를 변환한다.
위의 세가지 레벨은 단지 데이터를 표현하는 방법일 뿐이고, 실제 데이터는 오직 physical level에서만 저장된다.

외부스키마에서 요청한 실제 데이터 객체에 접근하기위해, DBMS변환이 필요하다.
1. 외부 스키마에 대한 요청
2. 개념적 스키마에 대한 요청
3. 내부 스키마에 대한 요청
1~3과정은 database에 저장된 채로 진행된다.
내부단계로부터 데이터를 추출해내는 것을 "Reformatted"라고 한다. 이는, 원래 요청과 외부 레벨단계에서의 match이다.
ex. SQL query 를 Web page에서 보여주는 것


Data Independence
데이터베이스 시스템의 한 레벨에서의 어떤 특정 스키마의 변화에 대한 용량을 바꾸는 것, 단, 다음 높은 단계에서의 스키마 변화없이 이뤄진다.
1. Logical data independence
- 외부 스키마 및 관련 응용 프로그램을 변경하지 않고도 개념적(또는 논리적) 스키마를 변경할 수 있다.
2. Physical data independence
- 내부 스키마를 변경하지 않고도 스키마를 변경할 수 있다.


즉, 데이터가 변해도 스키마는 유지된다.