01. 데이터베이스와 SQL 개요
차 례 데이터베이스 관리 시스템(DBMS) 데이터베이스의 종류 SQL의 이해 데이터 형식과 NULL
데이터베이스 관리 시스템 데이터베이스의 정의 통합된 데이터(Integrated data) 자료의 중복을 배제한 데이터의 모임 저장된 데이터(Stored data) 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료 운영 데이터(Operational data) 조직의 업무를 수행하는데 있어서 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료 공용 데이터 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료
데이터베이스 관리 시스템 데이터베이스의 특징 실시간 접근성 질의(조회)에 대하여 실시간 처리 응답이 가능함 계속적인 변화 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지함 동시 공용 여러 사용자가 동시에 원하는 데이터를 이용할 수 있음 내용에 의한 참조 데이터베이스에 있는 데이터를 참조할 때 데이터 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾음
데이터베이스 관리 시스템 필수기능 정의(조직) 데이터의 형(Type)과 구조, 데이터가 DB에 저장될 때의 제약조건 등을 명시하는 기능 조작 체계적 처리를 위한 데이터 접근 수단 등을 정하는 기능 제어 무결성, 보안 및 권한 검사, 병행수행 제어 등의 기능을 정하는 기능
데이터베이스 관리 시스템 장점 데이터의 중복을 피할 수 있음 저장된 자료를 공동으로 이용할 수 있음 데이터의 일관성을 유지할 수 있음 데이터의 무결성을 유지할 수 있음 보안을 유지할 수 있음 데이터를 표준화할 수 있음 데이터를 통합하여 관리할 수 있음 항상 최신의 데이터를 유지함 데이터의 실시간 처리가 가능함 데이터의 논리적 물리적 독립성이 보장됨
데이터베이스 관리 시스템 단점 데이터베이스 전문가 부족 전산화 비용이 증가함 대용량 디스크로의 집중적인 Access로 과부하(Overhead)가 발생함 파일의 예비(Backup)와 회복(Recovery)이 어려움 시스템이 복잡함
데이터베이스 관리 시스템 종류
데이터베이스의 종류 계층형 데이터베이스 데이터베이스 모형의 일종으로 데이터가 트리 형태로 계층적으로 저장 주요 특징 계층 구조로 이루어진 가장 오래된 DBMS(1960년대 시작) 각 계층 구조는 물리적인 포인터로 연결, 종속적 초기 구축 후 구조 변경이 어려움 예상치 못한 무작위 검색 어려움
데이터베이스의 종류 망형 데이터베이스 계층형 트리를 망(network) 형태로 확장한 것 레코드 사이에 다대다 관계 유지 복잡한 내부 포인터 사용 주요 특징 계층형의 문제점 해결 위해 1970년대 초 개발 계층 구조간 연결 고리를 추가하여 빠르고 효과적인 데이터 추출 가능 복잡한 형태의 시스템에는 많은 유지보수 비용과 Backlog가 필요 프로그래머가 구조를 이해해야만 프로그램이 작성 가능
데이터베이스의 종류 관계형 데이터베이스 테이블(릴레이션, 엔티티)들로 구성된다. 테이블 내에 열(속성, 필드)이 있으며, 열 값의 한 묶음을 행(인스턴스, 투플, 레코드)이라 한다.
데이터베이스의 종류 관계형 데이터베이스 행(레코드)을 연결하기 위해 열 값을 사용한다. 예) 고객 레코드와 주문 레코드에는 고객 ID라는 공통적인 열이 있어서 이 열이 레코드들을 서로 연결한다. (외래 키)
데이터베이스의 종류 RDB의 장점 내장된 다중 수준의 데이터 무결성 데이터의 정확도를 보장하기 위한 필드 수준의 무결성 레코드가 중복되지 않음을 보장하고 주 키 값 누락을 감지하기 위한 테이블 수준의 무결성 한 쌍의 테이블 사이의 관계가 유효함을 보장하기 위한 관계 수준의 무결성 데이터가 업무 지침과 일치하는지를 보장하기 위한 업무 수준의 무결성
데이터베이스의 종류 RDB의 장점 데이터의 응용 프로그램으로부터의 독립성 사용자가 데이터베이스의 논리적 설계를 수정하거나 DBMS 개발사가 데이터베이스의 물리적 구현을 수정하더라도 데이터베이스 위에 구축된 애플리케이션에 악영향을 미치지 않는다. 보장된 데이터 일관성과 정확성 데이터베이스 내에 부과할 수 있는 다양한 수준의 무결성으로 인해 데이터가 일관성 있고 정확하다.
데이터베이스의 종류 RDB의 장점 손쉬운 데이터 추출 사용자의 명령어로 데이터베이스 내의 특정 테이블 하나 또는 여러 개의 로 연관된 테이블들로부터 데이터를 추출할 수 있다. 이는 거의 무한대의 방법으로 사용자가 정보를 볼 수 있게 해 준다.
SQL의 이해 개요 SQL(Structured Query Language) RDB의 데이터를 관리, 조작하기 위한 언어 T-SQL, PL/SQL
SQL의 이해 표준화 기관 ANSI(American National Standards Institute) 미국 내에서 기술 표준 개발을 육성하기 위해 설립된 제 1차 기관 아스키(ASCII)와 스쿠지(SCSI) 등을 제정 ISO(International Standards Organization) 100여 개 나라에서 온 대표자들로 구성된 국가 표준화 기구의 세계적인 연합체 많은 국가에 ANSI와 같은 국가표준화 기구가 있어 ISO의 표준안 작성에 참여함
SQL의 이해 표준화 과정 SQL – 89 1982년 : ANSI에서 표준화 작업을 시작 1986년 : IBM DB2의 SQL을 근간으로 하여 ANSI 표준으로 채택 1987년 : ISO의 표준으로도 채택 1989년 : ANSI / ISO SQL 표준을 보완 및 확장하여 SQL-89(또는 SQL1)라는 첫 번째 SQL 표준이 정착
SQL의 이해 표준화 과정 SQL - 92 1992년에 SQL-89를 대폭 보완 세 개의 표준 준수 수준으로 구분 ➊ 도입 수준(Entry Level) SQL-89에 최소한의 기능 추가만 요구 (많은 상용 관계형 DBMS의 SQL) ➋ 중간 수준(Intermediate Level) 상당한 기능 추가를 요구하지만, 지나치게 복잡하거나 시스템에 의존하는 부분은 피함 ➌ 완전 수준(Full Level) SQL-92 표준의 모든 기능을 구현할 것을 요구
SQL의 이해 표준화 과정 SQL : 1999 (SQL3) 1999년에 SQL-92를 확장 및 보완 SQL : 2003
SQL의 이해 표준 SQL을 준수하지 않는 이유 여러 차례 SQL 표준이 제정되었으나 SQL들끼리 완벽하게 호환되지 않는 이유 표준의 양이 방대하고 복잡해 전부 구현하기가 어렵다. SQL 표준이 여러 중요한 부분(인덱스, 파일 저장소 등)에 대해 명시하지 않아 구현 방법이 제각각이다. SQL 표준에서 SQL의 구문은 명확히 규정하지만, SQL의 의미에 대해서는 명확히 정의하지 않아 모호성이 발생. DBMS개발사들은 이미 많은 고객을 확보했기 때문에 SQL 표준이 기존 기능과 상충될 경우, 과거 호환성을 깨뜨리면서까지 표준을 준수할 생각이 없다.
데이터 형식과 NULL 데이터 형식
데이터 형식과 NULL 데이터 형식
SQL의 이해 NULL 값이 없는 상태 숫자 데이터 형식의 0도 아니고, 문자 데이터 형식의 공백이나 빈 문자도 아님 실제 관계형 데이터베이스의 테이블에 저장되는 데이터 중 알 수 없거나 (unknown) 적용할 수 없는(not applicable) 값을 나타낸다.