[데이터베이스 개론] Chapter 12 - 데이터베이스 응용 기술
·
Database
객체지향 데이터베이스 관계 데이터베이스는 관계 데이터 모델의 기능적 제약조건과 SQL의 표현력의 한계로 인해 다양한 응용 분야에 부적합하다는 문제가 제기되었다. 따라서 관계 데이터베이스와 다른 형태의 데이터베이스들이 연구되었는데 그중 하나가 객체지향 데이터 모델이다. 객체지향 데이터베이스의 데이터 모델과 질의어는 표준화되지 못하여 한정적인 분야에서만 사용된다. 객체지향 데이터 모델 객체지향 데이터 모델은 객체지향 개념에 기반을 둔 데이터 모델이다. 객체지향 모델은 다양한 응용 분야의 데이터 모델링을 위한 새로운 요구 사항을 지원하고, 의미상 관계가 있는 데이터베이스 구조를 표현하려고 할 때 강력한 설계 기능을 제공한다. 객체와 객체 식별자 객체는 현실 세계에 존재하는 개체를 추상적으로 표현한 것이다. 각..
[데이터베이스 개론] Chapter11 - 보안과 권한 관리
·
Database
보안 데이터베이스에 저장된 데이터는 여러 사용자들이 공유해서 사용하는 특성이 있다. 데이터베이스에 저장된 데이터를 보호하기 위해 인증, 인가된 사용자만 접근하게 하여 보안을 유지해야 한다. 물리적 환경에 대한 보안 자연재해처럼 데이터베이스에 물리적으로 손실을 발생시키는 위험으로부터 데이터베이스를 보호해야 한다. 권한 관리를 통한 보안 접근이 허락된 사용자만 부여된 권한 내에서 데이터베이스를 사용할 수 있도록 한다. 그러려면 계정이 발급된 사용자만 데이터베이스에 접근할 수 있도록 통제하고, 사용자별로 데이터베이스의 사용 범위와 수행 가능한 작업 내용을 제한할 수 있어야 한다. 운영관리를 통한 보안 접근이 허락된 사용자가 부여된 권한 내에서 데이터베이스를 사용하더라도 실수 등의 이유로 데이터 무결성을 위반할..
[데이터베이스 개론] Chapter10 - 회복과 병행 제어
·
Database
트랜잭션 데이터베이스는 다수의 사용자가 동시에 사용하더라도 항상 정확한 데이터를 유지해야 한다. 또한 데이터베이스의 장애가 발생하더라도 빠른 시간 내에 원래의 상태로 복구할 수 있어야 한다. 트랜잭션의 개념 DBMS는 항상 데이터베이스가 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데 그중 하나가 트랜잭션이다. 트랜잭션은 작업 하나를 수행하는데 필요한 데이터베이스의 연산을 모아놓은 것이다. 이는 데이터베이스의 논리적 작업의 단위가 되며, 데이터베이스에 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다. 하나의 트랜잭션으로 묶인 작업은 중간에 장애가 발생하더라도, 시스템이 복구되었을 때 나머지 작업을 실행하거나 이전의 작업을 취소해서 이전 상태로 되돌아가게 해야 한다. 일반적으로 ..
[데이터베이스 개론] Chapter9 - 정규화
·
Database
정규화의 개념과 이상 현상 정규화의 개념 정규화는 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용한다. 정규화는 이상현상을 제거하면서 데이터베이스를 올바르게 설계해 나간다. 이상현상의 종류 삽입 이상 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 삭제 이상 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 정규화의 필요성 이러한 이상현상이 발생하는 이유는 관련이 없는 속성들을 하나의 릴레이션에 모아두고 있기 때문이다. 따라서 관련 있는 속성들로만 릴레이션을 구성해야 하는데 이때 정규화를 사용한다. 정규화는 이상현상이 발생하지 않도록 릴레이션을 분해하는 과정이다. 정규화를 ..
[데이터베이스 개론] Chapter8 - 데이터베이스 설계
·
Database
데이터베이스 설계 단계 조직 구성원들의 다양한 요구에 알맞은 데이터베이스를 구축하기 위해서는 데이터베이스 설계가 중요하다. 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 E-R 모델과 릴레이션 변환 규칙을 이용한 설계 방법과 정규화를 이용한 설계 방법을 사용한다. 요구사항 분석 요구사항 분석 단계에서는 데이터베이스에 대한 사용자들의 요구 사항을 수집하고 분석하여, 개발할 데이터베이스의 용도를 명확히 파악하는 것이 목적이다. 요구 사항 분석 단계는 사용자가 요구하는 데이터베이스의 용도가 결정되는 단계이기 때문에 품질 좋은 데이터베이스를 개발하기 위해 가장 중요한 단계이다. 데이터베이스를 사용할 주요 사용자의 범위부터 결정한다. 사용자가 조직에서 수행하는 업무를 분석한다. 수집된 요구 사항을 ..
[데이터베이스 개론] Chapter7 - 데이터베이스 언어 SQL
·
Database
SQL의 소개 SQL(Structured Query Language)은 관계 데이터를 위한 표준 질의어로 사용한다. SQL은 원하는 데이터가 무엇인지만 말하기 때문에 비절차적 데이터 언어의 특성을 띤다. SQL은 SEQUEL(Structured English QUEry Language) 에서 유래했으며 1986년 ANSI와 ISO에서 SQL을 관계 데이터베이스의 표준 질의어로 채택하고 표준화 작업을 진행하였다. 이후로 계속 개정을 거쳐 SQL:2022까지 발표되었다. SQL은 DBMS에 직접 접근하여 사용하거나 응용 프로그램에 삽입하여 사용할 수도 있다. SQL을 이용한 데이터 정의 테이블의 생성 CREATE TABLE 테이블_이름 ( 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값]..
[데이터베이스 개론] Chapter6 - 관계 데이터 연산
·
Database
관계 데이터 연산의 개념 관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로 데이터 언어의 역할을 한다. 연산은 관계 대수와 관계 해석으로 나뉘는데 관계 대수는 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 것이고, 관계 해석은 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 것이다. 관계 대수와 관계 해석은 기능과 표현력은 동등하기 때문에 관계 대수로 기술된 요구를 관계 해석으로 변환할 수 있고, 그 반대로 변환할 수 있다. 데이터에 대한 처리 요구를 질의라고 한다. 관계 대수와 관계 해석은 실제로 사용되지는 않는 개념적 언어이지만 새로운 데이터 언어를 검증하는데 쓰인다. 관계 대수와 관계 해석으로 기술할 수 있는 ..
[데이터베이스 개론] Chapter4 - 데이터 모델링
·
Database
데이터 모델링과 데이터 모델의 개념 현실세계의 데이터를 컴퓨터 데이터베이스로 옮기는 변환 작업을 데이터 모델링이라 한다. 현실의 데이터에서 중요한 부분만 선별하는 것을 추상화라 하며 추상화를 통해 데이터 모델링을 진행한다. 데이터 모델링은 두 단계로 나누어 진행되는데, 현실에서 중요 데이터를 추출하여 개념 세계로 옮기는 작업을 개념적 모델링이라 하고 개념 세계에서 데이터베이스에 저장할 구조를 결정하고 표현하는 작업을 논리적 모델링이라 한다. 현실 세계의 데이터를 모델링 하기 쉽게 데이터 모델이라는 도구의 도움을 받는다. 데이터 모델은 두 가지로 나뉘는데 현실 세계를 개념적 데이터 모델링하여 데이터베이스의 개념적 구조로 표현하는 개념적 데이터 모델과 개념적 구조를 논리적 데이터 모델링하여 데이터베이스의 논..
[데이터베이스 개론] Chapter3 - 데이터베이스 시스템
·
Database
데이터베이스 시스템의 정의 데이터베이스 시스템이란 데이터베이스에 데이터를 저장하고, 저장된 데이를 관리하여 필요한 정보를 생성해 주는 시스템이다. 데이터베이스 : 데이터를 저장하는곳, 저장된 데이터의 집합 데이터베이스 관리 시스템 : 데이터베이스에 저장된 데이터의 일관적이고 무결한 상태로 유지하되도록 관리하는 것 데이터베이스 시스템 : 데이터베이스와 데이터베이스 관리 시스템을 이용해 필요한 정보를 제공하는 것 추가적으로 데이터베이스 시스템은 데이터 언어, 데이터베이스와 DBMS 설치, 데이터 처리 연산을 담당한다. 데이터베이스의 구조 스키마(schema) 스키마는 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것이다. 그리고 저장된 실제 데이터 값은 인스턴스라고 한다. 스키마는 한번 정의되면 ..