데이터 과학 데이터 과학은 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고 이를 문제 해결에 활용하는 모든 과정의 활동을 의미하며, 그러한 활동을 지원하는 수단이나 기술을 포함한다. 데이터 과학의 목표를 보다 잘 이해하기 위해서는 데이터가 지혜가 되는 과정을 설명할 때 많이 언급되는 DIKW(Data-Information-Knowledge-Wisdom) 계층 구조를 살펴볼 필요가 있다. 데이터는 관찰하거나 측정하여 수집한 사실이나 값을 의미한다. 이러한 데이터를 상황에 대한 이해를 바탕으로 목적에 맞게 가공한 것이 정보다. 그리고 규칙과 패턴을 통해 찾아낸 의미 있고 유용한 정보가 지식이다. 최종적으로 지식에 통찰력을 더해 새롭고 창의적인 아이디어를 도..
객체지향 데이터베이스 일반적으로 많이 사용되는 관계 데이터베이스는 현실 세계의 데이터를 관계 데이터 모델의 구조적 특성을 만족하면서 정규화 규칙을 따르는 릴레이션으로 저장하고 관리한다. 사용자는 SQL을 사용해 관계 데이터베이스를 정의하거나 조작 및 제어할 수 있다. 하지만 다양한 응용 분야에 부적합하다는 문제가 제기되었다. 이런 이유로 다른 형태의 데이터베이스를 구축하기 위해 새로운 데이터 모델을 연구해왔는데, 이 중 하나가 객체지향 데이터 모델이다. 객체지향 데이터 모델 객체지향 데이터 모델은 객체와 객체 식별자, 속성과 메서드, 클래스, 클래스 계층 및 상속, 복합 객체 등을 지원하는 객체지향 개념에 기반을 둔 데이터 모델이다. 객체와 객체 식별자 객체object는 현실 세계에 존재하는 개체를 추상..
보안 데이터베이스의 보안을 유지하여 데이터를 보호하는 방법은 고려하는 측면에 따라 다양하게 구분할 수 있지만, 일반적으로 다음 세 가지 유형으로 구분한다. 1. 물리적 환경에 대한 보안 : 자연 재해 등으로부터 보호 2. 권한 관리를 통한 보안 : 권한이 없는 사용자로부터 보호 3. 운영 관리를 통한 보안 : 권한이 있는 사용자로부터 보호 권한 관리 권한 관리의 개념 데이터베이스 관리 시스템은 데이터베이스의 보안을 유지하기 위해, 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어 기능을 기본으로 제공한다. 그러므로 모든 사용자는 자신에게 발급된 계정으로 로그인해야 데이터베이스에 접근할 수 있다. 로그인을 통해 데이터베이스에 접근할 수 있더라도 데이터베이스 ..
트랜잭션 DBMS는 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데, 그 중심에는 트랜잭션이 있다. 트랜잭션을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능해져, 결과적으로 데이터베이스가 일관된 상태를 유지할 수 있게 된다. 트랜잭션transaction은 하나의 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다. 트랜잭션의 특성 트랜잭션이 성공적으로 처리되어 데이터베이스의 무결성과 일관성이 보장되려면 네 가지 특성을 꼭 만족해야 한다. ACID 특성이라고도 한다. 1. 원자성 : 트랜잭션을 구성하는 연산들이 모두 정상적으로 실행되거나 하나도 실행되지 않아야 한다는 all or nothing 방식을 의..
정규화의 개념과 이상 현상 8장에서는 관계 데이터 모델에 기반을 두고 데이터베이스를 설계하는 방법 중 E-R 모델과 릴레이션 변환 규칙을 이용하는 방법을 살펴보았다. 이 장에서는 정규화normalization를 이용해 데이터베이스를 설계하는 방법에 대해 소개한다. 정규화는 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다. 앞에서도 언급했듯이, 두 설계 방법은 데이터베이스 설계 결과물이 비슷한 수준을 유지하므로 상황에 따라 적절한 방법을 선택하면 된다. 데이터베이스를 잘못 설계하면 부작용(이상anomaly 현상)이 발생한다. 이상 현상의 종류 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순..
데이터베이스 설계 단계 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 두 가지 방법을 주로 사용한다. 첫째는 이 장에서 알아볼 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계이고, 둘째는 9장에서 알아볼 정규화를 이용한 데이터베이스 설계다. 두 방법의 설계 과정물은 유사하기 때문에 상황에 따라 설계하면 된다. E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계는 5단계로 진행된다. 한 방향으로만 순서대로 진행되지는 않으며, 오류를 발견하여 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경할 수도 있다. 1단계 : 요구 사항 분석 데이터베이스의 용도파악 결과물 : 요구 사항 명세서 2단계 : 개념적 설계 DBMS에 독립적인 개념적 구조 설계 결과물 : 개념적 스키마..
SQL의 소개 SQL(Structured Query Language)은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어다. SQL은 사용자가 처리를 원하는 데이터가 무엇인지 제시하고 데이터를 어떻게 처리해야 하는지를 언급할 필요가 없어 비절차적 데이터 언어의 특징을 띤다고 할 수 있다. SQL은 데이터베이스 관리 시슽메에 직접 접근하여 대화식으로 질의를 작성해 사용할 수도 있고 C나 JAVA같은 언어로 작성한 응용 프로그램에 삽입하여 사용할 수도 있다. 이 장에서는 데이터 정의어와 데이터 조작어를 중심으로 공부하고, 데이터 제어어는 11장에서 따로 다룬다. 복습 SQL(데이터 언어라고 의미해도 무리는 없다)의 분류 데이터 정의어 : 테이블을 생성하고 변경 제거하는 기능을 제공한다. 데이터 조직..
관계 데이터 연산의 개념 관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다. 대표적인 관계 데이터 연산으로 관계 대수와 관계 해석이 있다. 관계 대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어 관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어 데이터에 대한 처리 요구를 일반적으로 질의(query)라 한다. 관게 대수와 관계 해석은 상용화된 관계 데이터베이스에서는 실제로 사용되지 않는다. 새로운 데이터 언어가 제안되면 해당 데이터 언어의 유용성을 검증해야 하는데 검증의 기준 역할을 하는 것이 관계 대수와 관계 해..