Computer Science 85

[HUFS/데이터베이스] #6 관계 대수

관계형데이터베이스는 비절차적 질의를 절차적 언어로 변환하는 작업을 수행한다 즉, DB가 실질적으로 다루는 언어는 절차적 언어인 것이다 관계 대수(Relational Algebra) = 절차적 언어 비절차적 질의는 관계 해석(relational calculus)이라고 한다 * 두 방법은 표현과 기능면에서 동등하기 때문에 DB에 비절차적 질의를 사용한다 DB의 데이터인 Relation(tuple의 집합)이 관계 대수의 피연산자이며 다양한 연산이 가능하다 일반 집한 연산자 순수 관계 연산자 SELECT 연산 * 선택되는 tuple의 비율을 선택도(selectivity)라고 하는데 이 경우 3/5이니까 60%다 PROJECT 연산 DIVISION 연산 RENAME 연산 중간 처리 결과 relation이나 att..

[HUFS/데이터베이스] #5 무결성 제약

관계형 데이터베이스(Relational Database) 관계형 데이터베이스는 Relation들의 집합을 테이블 형태로 표현한 것인데,, 관계형 데이터베이스의 Schema는 Relation Schema와 무결성 제약조건으로 구성된다! 데이터베이스 키(key) 여기서 키(key)는 각 tuple을 유일하게 식별할 수 있는 attribute들의 집합이다 유일성: 각 tuple에서 해당 attribute들의 집합이 유일한가? 최소성: 해당 attribute의 집합이 각 tuple을 식별하는데 필요한 값들만 포함되었는가? 유일성과 최소성을 만족한다면 후보 키(candidate key) 유일성은 만족하지만 최소성을 만족하지 않는다면 슈퍼 키(super key) 후보 key 중에서 DB 설계자가 지정한 key를 기..

[HUFS/데이터베이스] #4 관계 데이터 모델

관계 데이터 모델 (relational data model) 계층형/네트워크형 DB와 달리 관계형 DB를 사용하면서 비절차적 질의가 가능해짐 관계형 데이터 모델은 집합(set)과 릴레이션(relation)에 기반을 두고 있다 사용자는 이를 테이블의 형태로 생각하는데,, 즉, 테이블과 달리 relation의 tuple은 중복이 허용되지 않으며 attribute의 순서에 의미가 없다 관계형 데이터 베이스는 모든 데이터를 이러한 relation의 형태로 저장한다 이 때, relation의 attribute가 취할 수 있는 값들의 집합을 도메인(domain)이라고 한다 * attribute와 domain의 이름이 같을 수도 있다 스키마(Schema)와 인스턴스(Instance) 이러한 개요를 Relation S..

[HUFS/데이터베이스] #3 데이터베이스 시스템의 구성

3단계 데이터베이스 DB = 개체(entitiy)와 관계(relationship) + 제약조건(constraint) 이러한 구조를 스키마(schema)라고 부른다 내부(internal) 스키마: 데이터베이스의 디스크에 실제로 정의되는 스키마 / 저장 장치 개념(conceptual) 스키마: 데이터 베이스의 구조를 개념적으로 정의한 것 / 범 기관적 외부(external) 스키마: 내부 스키마를 외부에서 각각 다른 형태로 보는 것 / 사용자 DB에서 사상 구조 및 스키마가 저장되는 영역을 카탈로그 or 데이터 디렉토리라고 한다 모든 객체에 대한 정의 및 명세에 대한 정보를 수록하는 DB 관리자 도구라고 볼 수 있다 * 메타 데이터: 데이터의 분류 및 속성을 설명하는 카탈로그의 데이터 DBMS DBMS의 수..

[HUFS/데이터베이스] #2 데이터베이스 관리 시스템

데이터베이스 관리 시스템(Database Management System) DBMS 이전의 데이터들은 OS(운영체제)가 지원하는 파일 중심 데이터 처리 시스템을 따랐다 각각의 물리적 구조가 달라 응용 프로그램들이 데이터를 공유하지 못하는 문제 -> 종속성 각 응용프로그램이 동시에 데이터를 변경하지 못하는 문제 -> 중복성 데이터베이스의 필수 기능 정의 기능 하나의 저장 구조로 여러 사용자의 요구를 지원하도록 데이터를 조직 데이터의 논리적(정보)/물리적(용량) 구조를 명세 물리적/논리적 사상(mapping)을 명세 조작 기능 사용자와 DB 사이의 인터페이스를 위한 수단 체계적 접근 및 조작 (검색/갱신/삽입/삭제) 데이터 언어로 원하는 연산의 명세 및 효율적 처리 제어 기능 데이터의 정확성과 보안성을 유지..

[HUFS/자료구조] #1 자료구조와 알고리즘

자료구조란? 다양한 자료를 효율적인 규칙에 따라 정리한 구조이다. 알고리즘을 어떠한 자료구조로 구성할 것인지 선택할 수 있어야 한다 선형 자료구조: 연속적으로 붙는 연결관계를 가진 자료구조 비선형 자료구조: 복잡하고 계층관계를 가진 자료구조 알고리즘이란? 알고리즘 기술 순서는.. 자연어로 표현 -> 흐름도로 표현 -> 유사 코드로 표현 -> 프로그래밍 언어로 표현 추상 자료형(ADT – Abstract Data Structure) 프로그래머가 추상적(수학적)으로 정의한 자료형 ~ 데이터와 연산이 무엇(what)인지는 정의하지만 어떻게(how) 할지는 모르는 상태 알고리즘의 성능 분석 1. 알고리즘의 실행 시간을 측정하는 방법 ~정확한 측정을 위해 동일한 하드웨어에 실제로 구현해야 하기 때문에 현실적으로 ..

[HUFS/데이터베이스] #1 데이터베이스 환경

임의의 위치의 데이터를 읽을 수 있는 하드디스크가 발명되면서 데이터베이스라는 개념도 등장했다 이제 본격적으로 데이터베이스 환경에 대해서 알아보자! 정보 처리 시스템 * 처리기는 데이터베이스 혹은 정보 시스템이 가지는 응용 프로그램으로 구성된다 보통 정보 시스템에 질의(쿼리, query)를 던지면 연산을 통해 결과(정보)가 산출된다 정보 시스템은 기획, 운영, 통제에 도움을 주는 경영 정보 시스템, 의사 결정에 도움을 주는 의사 결정 지원 시스템 등이 있는데, 이는 분석 가능한 형태의 정보들이 저장된 중앙 저장소인 데이터 웨어하우스(DW), 대규모 데이터에서 통계적 규칙이나 패턴을 찾아내는 데이터 마이닝, 조직내의 인적 자원이 축적한 개별적 지식을 체계화하여 공유하는 지식관리 시스템을 포함한다 데이터 처리..

[Codeit/MySQL] #6 서브쿼리와 뷰를 활용한 데이터 분석

서브쿼리(SubQuery) 서브쿼리: SQL문 안에 ‘부품’처럼 들어가는 SELECT문 서브쿼리를 포함하는 전체 SQL문은 outer query(외부 쿼리), 서브쿼리는 inner query(내부 쿼리) SELECT절의 서브쿼리는 보통 새로운 column 조회를 추가하는 경우다! WHERE절의 서브쿼리도 활용해 조건을 붙이자 IN으로 컬럼의 여러 row값을 return하는 조건도 가능하다! ANY와 ALL을 활용해도 좋다! ANY(=SOME): 서브쿼리 row값 중 단 하나의 값이라도 만족하면 TRUE ALL: 서브쿼리 row값 모두 만족해야 TRUE FROM절의 서브쿼리는 테이블 형태의 결과를 return한다 (활용성 높다!) 전체 SQL문을 서브쿼리로 만든 derived table은 전체에 alias..