본문 바로가기

컴퓨터학원(복습)(수료)

자바(JAVA)기반 안드로이드 웹&앱 개발 14일차(데이터베이스, DBMS, 관계대수, mySQL설치)

안녕하세요 의창입니다.

3.09(화)는 온라인강의라서 일차수에서는 제외하였습니다.

mySQL설치는 생략하였습니다.

Chapter 01 : 데이터베이스 시스템

데이터베이스와 데이터베이스 시스템

1) 데이터베이스의 개념

(1) 통합된 데이터(integrated data)

- 통합 시 중요한 점은 각자 사용하던 데이터의 중복을 최소화함으로써 중복 저장으로 인 한 데이터 불일치 현상

을 없애는 것

(2) 저장된 데이터(stored data)

- 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터 를 의미한다.

(3) 운영 데이터(operational data)

- 조직의 목적을 위해 사용되는 데이터를 의미한다.

(4) 공용 데이터(shared data)

- 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터

2) 데이터베이스 특징

(1) 실시간 접근성(real time accessibility)

- 데이터베이스는 실시간으로 서비스된다.

(2) 계속적인 변화(continuous change)

- 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다.

삽입, 삭제, 수정 등의 작업으로 바뀐 데이터 값을 저장한다.

(3) 동시 공유(concurrent sharing)

- 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.

(4) 내용에 따른 참조(reference by content)

- 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.

3) 정보시스템의 발전

(1) 파일 시스템

- 데이터를 파일 단위로 파일 서버에 저장

(2) 데이터베이스 시스템

- DBMS를 도입하여 데이터를 통합관리하는 시스템

- 데이터를 가진 쪽을 서버Server라고 하고 외부에서 데이터를 요청하는 쪽을 클라이언트 라고 한다.

(3) 웹 데이터베이스 시스템

- 데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템

(4) 분산 데이터베이스 시스템

4) DBMS의 장점

구분

파일 시스템

DBMS

데이터 중복

데이터를 파일 단위로

저장하므로 중복가능성 높음

DMBS를 이용하여 데이터를 공유하기 때문에 중복가능성 낮음

데이터 일관성

데이터의 중복 저장으로

일관성이 결여됨

중복 제거로 데이터의 일관성이 유지됨

데이터 독립성

데이터 정의와

프로그램의 독립성 유지 불가능

데이터 정의와

프로그램의 독립성 유지 가능

관리기능

보통

데이터 복구, 보안, 동시성 제어, 데이터 관리기능 등을 수행

프로그램 개발 생산성

나쁨

짧은 시간에

큰 프로그램을 개발할 수 있음

기타 장점

별도의 소프트웨어

설치가 필요없음

데이터 무결성 유지

데이터 표준 준수 유지

 

2. 데이터베이스 시스템의 구성

1) 데이터베이스 언어 SQL(Structured Query Language)

(1) 데이터 정의어 DDL(Data Definition Language)

- CREATE, ALTER, DROP문과 같이 DBMS에 저장된 테이블 구조를 정의

(2) 데이터 조작어 DML(Data Manipulation Language)

- SELECT, INSERT, DELETE, UPDATE문과 같이 데이터를 검색, 삽입, 삭제, 수정하는 데 사용하는 언어

(3) 데이터 제어어 DCL(Data Control Language)

- GRANT, REVOKE 문과 같이 데이터의 사용권한을 관리하는 언어

(4) 질의문(Query문)

- 데이터 조작어 중 데이터를 검색하는 문

- 예시 ) Book 테이블에서 모든 도서이름(bookname)과 출판사(publisher)를 검색하시오.

> SELECT bookname, publisher

> FROM Book;

- 예시2 2) 가격(price)이 10,000원 이상인 도서이름(bookname)과 출판사(publisher)를 검색하시오.

> SELECT bookname, publisher

> FROM Book

> WHERE price >= 10000;

2) 데이터베이스 사용자

(1) 일반 사용자

- 은행의 창구 혹은 관공서의 민원 접수처 등에서 데이터를 다루는 업무를 하는 사람

(2) 응용 프로그래머

- 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람

(3) SQL 사용자

- SQL을 사용하여 업무를 처리하는 IT부서의 담당자

- 데이터베이스 관리자(DBA) : DB 운영조직의 DBMS 시스템을 총괄하는 사람

필요한 지식

사용자

SQL 언어

프로그래밍 능력

DBMS 지식

데이터 구성

일반 사용자

없음

없음

없음

없음

SQL 사용자

높음

없음

보통

보통

응용 프로그래머

높음

높음

보통

보통

데이터베이스 관리자

높음

보통

높음

높음

3) DBMS

(1) 정의 : 사용자와 데이터베이스를 연결시켜주는 소프트웨어

(2) 역할 : DB 사용자가 DB를 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할

4) 데이터 모델 (생략)

5) 데이터베이스의 개념구조

(1) 3단계 데이터베이스 구조

① 외부 단계 : 일반 사용자나 응용 프로그래머가 접근하는 계층

- 외부 스키마(external schema) : 뷰(View)의 개념이다.

- 대학 DB를 예로 들면 학생처의 학생 정보, 교무처의 수강 정보 등은 전체 DB의 일

부분으로 각 부서의 사용자들에게만 필요한 각각의 스키마라고 할 수 있다.

② 개념 단계 : 전체 데이터베이스 정의를 의미

- 통합 조직별로 하나만 존재하며 DBA가 관리한다.

- 개념 스키마(conceptual schema) : 저장장치에 독립적으로 기술

- 저장장치에 독립적으로 기술되며, 데이터와 관계, 제약사항, 무결성에 대한 내용포함

- 대학 DB를 예로 들면 학생정보, 수강정보 등이 모두 모인 대학 전체 DB를 뜻함.

③ 내부 단계 : 물리적 저장장치에 DB가 실제로 저장되는 방법을 표현

- 내부 스키마(internal schema)

- Index, 데이터 레코드의 배치방법, 데이터 압축 등에 관한 사항이 포함

- 대학 DB를 예로 들면 대학 전체 DB가 실제 하드디스크에 저장되는 물리적인 구조

(2) DBMS 매핑(maaping)(사상)

- 매핑을 통하여 각 단계 간 대응 관계를 정의

- 외부/개념 매핑 : 사용자의 외부 스키마와 개념 스키마 간의 매핑(사상)으로 외부 스키 마의 데이터가 개념

스키마의 어느 부분에 해당되는지 대응시킨다.

- 개념/내부 매핑 : 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법 으로 저장되는지

대응시킨다.

(3) 3단계 데이터베이스 구조의 특징 : 데이터 독립성(data independence)

① 논리적 데이터 독립성(logical data independence)

- 외부 단계와 개념 단계 사이의 독립성

- 개념스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원한다.

- 즉, 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념이다.

② 물리적 데이터 독립성(physical data independence)

- 개념 단계와 내부 단계 사이의 독립성

- 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다.

 

Chapter 02 관계 데이터 모델

1. 관계 데이터 모델의 개념

1) 릴레이션(relation)

(1) 행과 열로 구성된 테이블

- 릴레이션 내에서 생성되는 관계 : 릴레이션 내 데이터들의 관계

- 릴레이션 간에 생성되는 관계

- 한 릴레이션에서 다른 릴레이션으로 식별 가능한 값을 이용하여 연결

2) 릴레이션 스키마와 인스턴스

(1) 스키마(Schema)

- RDBM의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조 를 정의

(2) 인스턴스(Instance)

- 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합

(3) 속성(Attribute)

- 각 열, 각각의 이름이 있으며 그 이름을 보고 어떤 정보가 담기는지 알 수 있다.

① 도메인(domain)

- 속성이 가질 수 있는 값의 집합 (Ex : 성별의 도메인 = ‘남’. ‘여’)

② 차수(degree)

- 속성의 개수

(4) 튜플(Tuple)

- 릴레이션 인스턴스의 각각의 행

① 카디날리티(Cardinality)

- 튜플의 수

3) 릴레이션의 특징

(1) 속성은 단일 값을 가진다.

(2) 속성은 서로 다른 이름을 가진다.

(3) 한 속성의 값은 모두 같은 도미엔 값을 가진다.

(4) 속성의 순서는 상관없다.

(5) 릴레이션 내의 중복된 튜플은 허용하지 않는다.

(6) 튜플의 순서는 상관없다.

4) 관계 데이터모델

- 데이터를 2차원 테이블 형태인 릴레이션으로 표현하며, 릴레이션에 대한 제약조건과 관계 연산을 위한

관계대수를 정의한다.

2. 무결성 제약조건

1) 키(Key)

- 릴레이션에서 특정 튜플을 식별할 때 사용하는 속성 혹은 속성의 집합

- 키가 되는 속성(혹은 속성의 집합)은 반드시 값이 달라서 튜플들을 서로 구별할 수 있어 야 한다.

(1) 슈퍼키(super key)

- 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합

- 튜플을 유일하게 식별할 수 있는 값이면 모두 슈퍼키가 될 수 있다.

- 슈퍼키는 포함하지 않아도 되는 속성을 포함할 수 있다.

(2) 후보키(candidate key)

- 튜플을 유일하게 식별할 수 있는 속성의 최소 집합

- 슈퍼키 중에서 정말로 튜플을 유일하게 식별할 수 있는 속성

- 복합키(composite key)

- 두 개의 후보키 속성을 합한 키

(3) 기본키(PK, primary key)

- 여러 후보키 중 하나를 선정해요 대표로 삼는 키

- 후보키가 하나뿐이라면 그 후보키를 기본키로 사용하면 되고 여러 개라면 릴레이션의 특성을 반영하여

하나를 선택하면 된다.

- 릴레이션 스키마를 표현할 때 기본키는 아래와 같이 밑줄을 그어 표시한다.

① 기본키 제약조건

- 릴레이션 내 튜플을 식별할 수 있는 고유한 값을 가져야 한다.

- NULL 값은 허용하지 않는다.

- 키 값의 변동이 일어나지 않아야 한다.

- 최대한 적은 수의 속성을 가진 것이라야 한다.

- 향후 키를 사용하는 데 있어서 문제 발생 소지가 없어야 한다.

(4) 대리키(surrogate key), 인조키(artificial key)

- 기본키가 보안을 요하거나, 여러 개의 속성으로 구성되어 복잡하거나, 마땅한 기본키가 없을 때는

일련번호 같은 가상의 속성을 만들어 기본키로 삼는다.

- 대리키는 DBMS나 관련 SW에서 임의로 생성하는 값으로 사용자가 직관적으로 그 값의 의미를 알 수 없다.

(5) 대체키(alternake key)

- 기본키로 선정되지 않은 후보키

(6) 외래키(FK, foreign key)

- 다른 릴레이션의 기본키를 참조하는 속성

- 다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션 간의 관계를 표현

- 외래키가 성립하기 위해서는 참조되고 참조되는 양쪽 릴레이션의 도메인이 서로 같아 야한다.

- 참조되는 릴레이션의 기본키 값이 변경되면 이 기본키를 참조하는 외래키 값 역시 변 경되어야 한다.

- 참조하는 외래키 값이 참조되는 기본키 값에 연동된다는 의미로, 외래키는 항상 데이터 의 일관성을

유지해아 한다.

- 외래키(참조하는 키)는 참조되는 릴레이션의 기본키와 달리 NULL 값을 포함할 수 있고 중복값도 허용한다.

- 자기 자신의 기본키를 참조하는 외래키도 가능하다.

- 외래키가 기본키의 일부가 될 수 있다.

2) 무결성 제약조건(integrity)

- DB에 저장된 데이터의 일관성과 정확성을 지키는 것을 말한다.

(1) 도메인 무결성 제약조건(domain integrity constraint) = 도메인 제약

- 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야 한다.

(2) 개체 무결성 제약조건(entity integrity constraint) = 기본키 제약

- 기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 함.

(3) 참조 무결성 제약조건(referential integrity constraint) = 외래키 제약

- 참조되는(제공하는) 릴레이션을 부모 릴레이션, 참조하는 릴레이션을 자식 릴레이션

- 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야하며, 자식 릴 레이션의 값이

변경될 때 부모 릴레이션의 제약을 받는다는 것이다.

- 즉, 부모 릴레이션의 도메인과 다른 값으로 삽입, 수정될 경우 거부되고, 반대로 자식 릴레이션에서

참조하고 있는 값을 부모 릴레이션에서 삭제하거나 다른 값으로 변경하려 고 하면 거부된다.

구분

도메인

개체 무결성 제약조건

참조 무결성 제약조건

제약대상

속성

튜플

속성과 튜플

같은 용어

도메인 제약

기본키 제약

외래키 제약

해당되는 키

-

기본키

외래키

NULL 값 허용여부

허용

불가

허용

릴레이션 내 제약조건의 개수

속성의 개수와 동일

1개

0~여러개

기타

튜플 삽입/수정 시 제약사항 우선 확인

튜플 삽입/수정 시 제약사항 우선 확인

튜플 삽입/수정 시 제약사항 우선 확인

부모 릴레이션의 튜플 수정/삭제 시 제약사항 우선 확인

3. 관계대수(relational algebra)

1) 관계대수

- 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어

- 절차적 언어로, 하나 이상의 릴레이션에 연산을 수행하여 결과 릴레이션이 나오기까지의 절차를 확인할 수 있는

방법을 제공한다.

2) 관계대수 연산자

(1) 순수관계 연산 : 관계 데이터 모델을 위해 고안

(2) 일반집합 연산 : 수학의 집합이론에서 차용

3) 관계대수식

(1) 단항 연산자 : 연산자 <조건> 릴레이션

(2) 이항 연산자 : 릴레이션1 연산자 <조건> 릴레이션 2

(3) 괄호 안의 식이 우선하며 왼쪽에서 오른쪽으로 진행된다.

(4) 셀렉션