1장. 서 론 데이터베이스의 개요 모델의 종류 관계형 모델과 객체 지향형 데이터베이스 SQL이란 무엇인가? 2019-05-22 쉽게 배우는 MySQL 5.x
1.1 데이터베이스의 개요 데이터베이스의 네 가지 만족 조건 -정보란 “시스템이 개인이나 단체의 요구를 처리하는데 있어서 중요하다고 인식되는 모든 지식” -데이터란 “지구상에 존재하는 모든 객체들의 개념, 사상, 명령 등을 표현한 것으로 인간 또는 기계가 감지할 수 있도록 숫자, 문자, 기호 등을 이용하여 형식화한 것” -데이터베이스는 “어느 한 조직의 여러 응용 시스템들이 공용할 수 있도록 통합, 저장된 운영 데이터의 집합” 데이터베이스의 네 가지 만족 조건 ① 통합된 데이터(Integrated data) : 동일한 데이터가 중복되지 않게 구성, 검색의 효율을 고려하여 최소한의 중복 또는 통제된 중복을 허용 ② 저장 데이터(Stored data) : 자기테이프나 디스크와 같은 저장 매체에 저장 ③ 운영 데이터(Operational data) : 조직의 존재 목적이나 기능을 수행하는 데 꼭 필요한 데이터의 집합 ④ 공용 데이터(Shared data) : 한 조직의 여러 응용 프로그램들이 공동으로 소유하고 유지하며, 이용하는 데이터 2019-05-22 쉽게 배우는 MySQL 5.x
데이터베이스의 특성 데이터베이스의 구성요소 ① 실시간 접근성(Real-time accessibility) : 데이터들은 데이터 상호간에 밀접한 관계로 연결되어야 하고, 중복 데이터를 가급적 배제하여 구축하고 어떠한 질의에 대해서도 몇 초안에 즉각적인 응답이 이루어지도록 하여야 한다. ② 계속적인 변화(Continuous evolution) : 데이터베이스는 항상 급변하는 현실 세계를 반영하기 때문에 계속적으로 변화되어야 한다. ③ 동시 공유(Concurrent sharing) : 서로 목적이 다른 사용자들이 같은 시간에 같은 데이터에 접근하여 이용할 수 있도록 DBMS는 관리하고 도와준다. ④ 내용에 의한 참조(Content reference) : 데이터 참조는 레코드의 주소나 위치에 의해서 참조하지 않고 사용자가 요구하는 데이터의 값에 따라 참조된다. 데이터베이스의 구성요소 ① 개체(entity) : 데이터베이스에 표현 하는 유형 무형의 정보 개체 타입(유형) : 속성의 이름들로 구성 개체 집합 : 개체 어커런스(인스턴스)의 모임 ② 속성(attribute) : 데이터의 가장 작은 논리적 단위(칼럼)로 항목, 필드에 해당 개체의 성질이나 상태를 기술하고 그 자체로는 정보를 제공하지 못함 속성이 갖는 값을 속성값이라 하고 항상 변경될 수 있다. 2019-05-22 쉽게 배우는 MySQL 5.x
데이터베이스의 구성요소 ③ 관계(relationship) : 현실세계를 개념세계로 표현 할 때 구성원소 사이에 9012 정보통신 최차영 20071405 5678 간호 고혜진 20061014 1234 컴퓨터정보 김유신 20001001 전화 학과 성명 학번 속 성 개체이름 개체집합 개체어커런스 개체타입 학적 테이블 데이터베이스의 구성요소 ③ 관계(relationship) : 현실세계를 개념세계로 표현 할 때 구성원소 사이에 (1 : 1), (1 : n), (n : m)의 사상을 말한다. 특정 개체를 기술하는 속성들 간의 속성 관계와 개체 집합과 개체 집합 사이 의 개체 관계로 나눈다. 2019-05-22 쉽게 배우는 MySQL 5.x
DBMS(DataBase Management System) ② DBMS는 데이터베이스 언어(database language)를 가지고 있으며 데이터베이스에 있는 데이터를 삽입하거나 삭제, 수정할 수 있다. ③ DBMS는 데이터베이스 데이터의 무결성(integrity)을 유지 -첫째 : DB의 데이터는 실세계를 적용하는 규칙을 항상 만족 예 : 둘 이상의 부서에서 작업을 하는 것으로 등록되어 있는 경우 불가능 -둘째 : 서로 다른 부분에 있는 두 개의 데이터가 서로 모순되지 않아야 한다 이는 또한 데이터 일관성(consistency)이 오류 예 : A테이블에 김유신의 출생일이 1981. 10. 07로 등록 B테이블에 김유신의 출생일이 1982. 10. 07로 등록 2019-05-22 쉽게 배우는 MySQL 5.x
DBMS의 3가지 특성 ① 데이터의 논리적 독립성 : 한 속성(칼럼)에 가해진 변경(크기의 증가 또는 감소)이 동일한 테이블에서 다른 속성(칼럼)에 심각한 영향을 주지 않는다는 것을 의미한다. 데이터의 논리적 독립성은 소프트웨어 유지보수 비용을 극적으로 줄일 수 있기 때문에 데이터처리 조직에게는 매력적인 개념이다. ② 참조 무결성과 데이터 무결성 : 관계형 데이터베이스는 응용 프로그램 개발시 무결성 제약 조건을 실행해야 하는 부담을 없앨 수 있다. ③ 비정규 질의 : 사용자는 작업을 실행하는 방법을 명시하지 않고도, 데이터베이스에게 어떤 데이터를 조회할 것인지를 명령할 수 있다. 2019-05-22 쉽게 배우는 MySQL 5.x
1.2 모델의 종류 -SQL(Structured Query Language)은 DBMS에서 사용되는 데이터베이스 언어로서 형식화된 명령문으로 구성 계층 데이터 모델(Hierarchical Data Model) 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한 트리(tree) 형태의 자료구조 모델 망 데이터 모델(Network Data Model) 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한 그래프(graph) 형태의 자료구조 모델 관계 데이터 모델(Relational Data Model) 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 테이블(table)로 사용하고 개체 집합들 사이의 관계는 공통 속성으로 연결하는 독립된 형태의 데이터 모델 2019-05-22 쉽게 배우는 MySQL 5.x
1.3 관계형 모델과 객체 지향형 데이터베이스 관계형 모델 성공 요인 객체지향 데이터 모델(Object-oriented Data Model) 계승, 객체ID, 자료추상형 등의 객체지향 개념과 데이터베이스 개념을 통합하여 가급적 실세계와 유사하게 모형화하는 데이터 모델 문자, 그림, 음성, 화상 등 멀티미디어 객체와 같은 복잡하고 큰 자료들을 처리 객체관계 데이터 모델(Object Relational Data Model) 단순한 자료와 복잡한 자료를 함께 잘 처리할 수 있는 데이터 모델로 객체지향 모델의 장점과 관계 모델의 장점을 취하여 하나의 시스템으로 통합된 모델 1.3 관계형 모델과 객체 지향형 데이터베이스 관계형 모델 성공 요인 ① 모델 자체가 간단하다. RDBMS는 문자, 숫자, 날짜, Memo 타입의 정보를 이차원 구조의 테이블 형태로 저장 ② RDBMS 모델 자체가 수학적인 이론의 바탕 위에서 성립되어 개발시스템의 성능을 수학적으로 미리 예측하여 검증하고 여러 연산을 수학적으로 최적화 ③ 간단한 질의어만 익히면 누구나 정보 검색을 할 수 있다. ④ 시대의 흐름에 발맞춰 그 시대가 요구하던 기술들을 지속적으로 지원 2019-05-22 쉽게 배우는 MySQL 5.x
테이블(Table), 열(Column), 행(Row) 관계형 모델의 용어 • 테이블(Table) • 열(Column) • 행(Row) • 무결성 규칙 또는 제한(Integrity rule or constraint) • 기본 키(Primary key) • 후보 키(Candidate key) • 대체 키(Alternate key) • 참조 키 또는 외래 키(Referential key or foreign key) 테이블(Table), 열(Column), 행(Row) -관계 데이터베이스에 데이터를 저장할 수 있는 유일한 형식은 테이블(Table) -테이블에 대한 공식적인 이름은 릴레이션(relation)이다. -SQL에서 릴레이션보다는 테이블이란 용어를 사용 -행과 열의 교차점은 원자 값(atomic value)이라는 오직 하나의 값으로 구성 -원자 값은 분리할 수 없는 단위 -테이블에서 행은 순서가 정해져 있지 않다. -테이블의 내용은 실제적인 행의 집합으로 간주된다. 2019-05-22 쉽게 배우는 MySQL 5.x
-STUDENT(학적) 테이블은 대학 학생의 신상 정보를 모두 15개의 행으로 구성 +----------+----------+----------------+--------------+ | stu_no | stu_name | stu_ename | tel | | 20001001 | 김유신 | Kim Yoo-Shin | 061)685-7818 | | 20001015 | 박도준 | Park Do-Jun | 061)744-6126 | | 20001021 | 이상길 | Lee Sang-Gil | 031)691-5423 | | 20041002 | 김유미 | Kim Yoo-Mi | 061)763-1439 | | 20041007 | 정인정 | Jeung Yin-Jeung| 061)723-1078 | | 20041033 | 연개소문 |Yean Gae-So-Moon| 061)642-9304 | | 20061011 | 박정인 | Park Jung-In | 02)652-2439 | | 20061014 | 고혜진 | Ko Hea-Jin | 061)781-5135 | | 20061048 | 김영호 | Kim Young-Ho | 062)548-8881 | | 20071001 | 장수인 | Jang Soo-In | 061)791-1236 | | 20071010 | 홍길동 | Hong Gil-Dong | 061)642-4034 | | 20071022 | 이순신 | Lee Sun-Shin | 061)745-7667 | | 20071300 | 유하나 | Yoo Ha-Na | 061)651-5992 | | 20071307 | 김문영 | Kim Moon-Young | 061)745-5485 | | 20071405 | 최차영 | Choi Cha-Young | 061)745-6893 | -STUDENT(학적) 테이블은 대학 학생의 신상 정보를 모두 15개의 행으로 구성 -테이블에서 STU_NO, STU_NAME, STU_ENAME과 TEL은 열(column)의 이름 -STU_NO 열은 20001001, 20001015, 20001021, … 20071405 값을 가짐 -이러한 원자 값들의 집합은 STU_NO 열의 모집단(population) 2019-05-22 쉽게 배우는 MySQL 5.x
무결성 규칙 -학생의 학번은 음수 값을 가질 수 없다. -서로 다른 학생은 동일한 학번을 가지지 않는다. -테이블이 갱신되면 새로운 데이터가 적절한 무결성 규칙을 만족하는지 조사 기본 키(Primary key) -테이블에서 유일한 행(row)을 구별할 수 있도록 사용되는 테이블의 열의 조합 -서로 다른 두 행은 테이블의 기본 키로 동일한 값을 가질 수 없다. -테이블에서 모든 행의 기본 키는 항상 하나의 값을 가지고 있어야 한다. -기본 키는 NULL 값을 가질 수 없다. 후보 키(Candidate key) -테이블은 기본 키를 대체할 수 있는 하나 이상의 열(칼럼)을 가질 수 있다. -유일성(uniqueness) : 한 테이블에서 모든 튜플(레코드, 행)들을 서로 구별할 수 있는 성질 -최소성(minimal) : 후보 키를 구성하는 칼럼들 중에서 어느 하나를 제거하면 유일성 기능을 상실하는 성질 대체 키(Alternate key) -테이블의 기본 키가 아닌 후보 키를 대체 키(alternate key)라 한다. -STUDENT 테이블에서 stu_name과 stu_ename의 조합키가 유일하면 대체키 참조 키 또는 외래 키(Referential key or foreign key) 테이블과 테이블의 관계를 설정해 주는 키로 관계를 설정해 주는 부모 키는 다른 테이블의 기본 키(Primary key)여야 한다. 2019-05-22 쉽게 배우는 MySQL 5.x
RDBMS 커널 -데이터 접근을 통제하기 위해 설계되는 운영체제 -기본적인 기능은 데이터의 저장, 추출, 보안이다. -동시 사용자를 위해 주어진 자원의 집합에 대한 접근을 관리하고 통제한다. -권한을 부여받은 사용자의 리스트와 사용자와 연관된 권한을 유지한다. -메모리, CPU, 디바이스, 파일 구조와 같은 자원에 머신 레벨의 접근을 하기 위해 호스트 서비스를 철저하게 통합화한다. -메모리 캐시와 페이징(Paging)을 관리하며, 자원의 동시 사용에 대한 록킹(Locking)을 통제하며, 사용자 요청을 할당한다. 데이터 사전(Data Dictionary) -RDBMS는 다른 데이터베이스나 파일 시스템과 근본적인 차이점은 데이터를 액세스하는 방법에 있다. -RDBMS는 물리적 데이터를 참조할 수 있게 하며, 또한 애플리케이션 코드 개발 시 용이함과 유연성을 제공한다. -데이터 사전은 데이터베이스 내에 존재하는 모든 객체(Objects)에 대한 메타 데이터(Meta-data:데이터의 속성에 관한 데이터)를 저장한다. -MySQL의 데이터 사전은 데이터베이스의 특별한 영역에 저장되는 테이블과 데이터베이스 객체의 집합이며, MySQL 커널에 의해 배타적으로 관리된다. -데이터베이스를 읽어오거나 갱신하는 요청은 데이터 사전 내의 정보를 사용하는 MySQL 커널에 의해 처리된다. 2019-05-22 쉽게 배우는 MySQL 5.x
1.4 SQL이란 무엇인가? -SQL(Structured Query Language)은 관계형 데이터베이스 언어이다. -데이터의 삽입, 삭제, 갱신, 질의 그리고 보호 명령문으로 구성 -SQL은 관계 데이터베이스 언어이로 비절차적 데이터베이스 언어로 분류한다. 대화형 SQL(Interactive SQL) SQL 문장이 터미널이나 마이크로컴퓨터에서 입력되면 즉시 처리되어 그 결과를 화면에서 볼 수 있는 형식 내장형 SQL(Embedded SQL) SQL 문장은 다른 프로그래밍 언어로 작성된 프로그램 내부에 포함되어 있다. 따라서 SQL 문장의 결과는 즉시 단말 사용자에게 보이지는 않지만 프로그램 내부에 포함되어 처리된다. 대화형 SQL과 내장형 SQL의 명령문과 기능은 실질적으로 동일하다. -대화형으로 입력되어 처리할 수 있는 대부분의 명령문은 내장형 SQL 프로그램에서 사용할 수 있다. -본서에서는 주로 대화형 SQL에 대하여 다루고 있다. 2019-05-22 쉽게 배우는 MySQL 5.x
-다양한 제품들 간의 차이점을 줄이기 위해서 많은 국제 모임에서는 SQL 표준을 개발 -국제 표준 기구(ISO : International Standard Organization)에서 SQL 표준화ISO는 국제적 표준화 기구로서 이들의 주된 임무는 국제적, 지역적, 국가적 표준화를 추진하는 것이다. 2019-05-22 쉽게 배우는 MySQL 5.x