본문 바로가기

Database10

[Database] View View는 다른 테이블에서 유도된 가상의 단일 테이블입니다.가상 테이블이기 때문에 물리적 형태로 존재하지 않습니다.CREATE VIEW를 통해 뷰를 생성합니다.CREATE VIEW WORKS_ON1AS SELECT NAME, PNAME, HOURS FROM EMPLOYEE, PROJECT, WORKS_ON WHERE SSN=ESSN AND PNO=PNUMBER뷰에서도 똑같이 SELECT 연산을 사용할 수 있습니다.SELECT PNAME, NAMEFROM WORKS_ON1WHERE PNAME='ProjectX'해당 릴레이션에서 튜플의 값이 변경된다면, 뷰는 이를 그대로 반영합니다. 다시 말해서, 뷰는 DBMS에 의해 항상 최신 정보를 갖습니다.DROP VIEW를 통해 뷰를 제거합니다.DR.. 2025. 4. 30.
[Database] SQL(3) | DML – INSERT, DELETE, UPDATE SQL 갱신문에는 다음과 같은 연산을 수행할 수 있습니다.INSERT INTODELETE FROMUPDATE1. INSERT한 개의 튜플을 추가합니다.INSERT INTO EMPLOYEEVALUES ('Richard', '524235', '30-DEC-52' ...) 기본 구성은 이렇게 되며, VALUES 안에는 해당 테이블의 애트리뷰트에 맞게 순서대로 기입합니다.INSERT INTO EMPLOYEE (NAME, SSN)VALUES ('Richard', 124')명시적으로 애트리뷰트를 지정하여 특정 애트리뷰트에만 값을 넣을 수도 있습니다.이 경우 명시되지 않은 애트리뷰트는 NULL 또는 default 값을 가집니다.2. DELETE튜플을 제거합니다.DELETE FROM EMPLOYEEWHERE NAME=.. 2025. 4. 30.
[Database] SQL(2) | DML – SELECT(3) 집단함수를 사용해 튜플의 통계를 낼 수 있습니다.집단함수에는 다음과 같은 키워드가 존재합니다.COUNT : 튜플이나 값의 개수 반환SUM : 값의 합 반환MAX : 값의 최댓값 반환MIN : 값의 최솟값 반환AVG : 값의 평균 반환SELECT SUM(SALARY). MAX(SALARY), MIN(SALARY), AVG(SALARY)FROM EMPLOYEE, DEPARTMENTWHERE DNO=DNUMBER AND DNAME='Research'‘Research’ 부서에 있는 모든 사원들의 봉급의 합, 최고 봉급, 최저 봉급, 봉급 평균을 구하는 구문입니다.SELECT COUNT(*)FROM EMPLOYEE회사 내의 총 종업원의 수를 출력합니다.SELECT COUNT(*)FROM EMPLOYEE, DEPA.. 2025. 4. 29.
[Database] SQL(2) | DML – SELECT(2) SELECT 연산을 사용하다 보면, 테이블은 다른데 애트리뷰트 명은 동일한 경우가 있습니다.ex) EMPLOYEE의 DNUMBER 애트리뷰트와 DEPARTMENT의 DNUMBER 애트리뷰트이런 경우 점(.)을 이용하여 애트리뷰트를 구분합니다.SELECT EMPLOYEE.NAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DEPARTMENT.NAME='Research' AND DEPARTMENT.DNUMBER=EMPLOYEE.DNUMBER같은 릴레이션을 두 번 참조하는 경우 (상사-부하 관계 등) 별명(alias)을 이용하여 두 릴레이션이 서로 다른 것처럼 정의합니다.SELECT E.NAME, S.NAMEFROM EMPLOYEE E, EMPLOYEE SWHERE E.SUPERSS.. 2025. 4. 29.
[Database] SQL(2) | DML – SELECT(1) 테이블에서 데이터를 검색하는 SELECT 연산입니다.SELECT 기본 구조는 다음과 같습니다.SELECT FROM WHERE EMPLOYEE라는 테이블이 있다고 가정했을 때, 여기서 John의 생일과 주소를 검색하려면 다음과 같이 작성합니다.SELECT BDATE, ADDRESSFROM EMPLOYEEWHERE NAME = "John" ;EMPLOYEE 테이블에서 research 부서에 일하는 모든 종업원들의 이름과 주소를 검색하려면 다음과 같이 작성합니다.SELECT NAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DNAME='Research' AND DNUMBER=DNO ;DNUMBER=DNO를 통해 조인 조건을 나타내며, FROM에서 작성한 두 테이블을 조인 조건에 맞.. 2025. 4. 29.
[Database] SQL(1) | DDL DBMS를 사용하기 위해 SQL이라는 언어를 사용하게 됩니다.SQL에는 2가지 종류가 있습니다. 테이블 자체를 생성하고 관리하는 정의문, 테이블 안 내용들을 관리하는 조작문으로 나뉘어집니다.DDL (Data Definition Language, 데이터 정의어)스키마CREATE SCHEMADROP SCHEMA설계자 (DBA)CREATE TABLEDROP TABLEALTER TABLEDML (Data Manipulation Language, 데이터 조작어)질의어SELECT갱신어INSERTDELETEUPDATE해당 포스트에서는 DDL만 다루며, DML은 다음 포스트에서 다룹니다.스키마CREATE SCHEMA 명령을 통해 스키마를 생성합니다.DROP TABLE 명령을 통해 스키마를 제거합니다.설계자 (DBA)C.. 2025. 4. 29.
[Database] 관계 데이터 모델과 관계 데이터베이스 제약조건 개념적 세계에서는 ER 모델을 표현하여 엔티티를 표현했습니다.논리적 세계에서는 관계 모델을 이용해 relation(릴레이션)을 표현합니다.릴레이션은 테이블의 형태를 띄며, 튜플(행, 레코드)의 집합입니다.정리하자면 다음과 같습니다.테이블 : 릴레이션행 : 튜플열 : 애트리뷰트 (속성)릴레이션에 관련된 용어들인데, 일부는 ER 모델링 용어와 공유합니다.도메인 : 원자 값의 범위릴레이션 스키마 : 릴레이션과 애트리뷰트의 집합릴레이션 차수 : 릴레이션 애트리뷰트 개수릴레이션 튜플릴레이션 상태릴레이션 튜플 순서는 의미가 없습니다.릴레이션이 모두 만족해야 하는 제약조건이 존재합니다.제약조건의 구성은 다음과 같습니다.도메인 제약조건키 제약조건엔티티 무결성 제약조건참조 무결성 제약조건하나씩 살펴보면 이렇습니다.1. .. 2025. 4. 29.
[Database] E-R 개념적 데이터 모델링 DB 설계 단계는 다음과 같습니다.요구사항 수집개념적 DB 설계 (entity)논리적 DB 설계 (tuple)물리적 DB 설계 (record)논리적 DB 설계 단계부터는 DBMS에 의존적이지만, 개념적 DB 설계는 독립적으로 이루어집니다.다음과 같은 요구사항이 수집되었다고 가정해 봅니다.회사는 여러 부서들로 구성된다. 각 부서마다 고유한 이름, 고유한 번호, 부서를 관리하는 특정 사원이 있다. 사원이 부서를 관리하기 시작한 날짜도 유지한다. 한 부서는 여러 위치에 있을 수 있다.한 부서는 여러 프로젝트들을 관리한다. 각 프로젝트는 고유한 이름, 고유한 번호, 한 개의 위치를 가진다.각 사원에 대해서 이름, 주민등록번호, 주소, 급여, 성별, 생년월일을 저장한다. 한 사원은 한 부서에 속하지만, 여러 프.. 2025. 4. 29.
[Database] 데이터베이스 시스템 데이터 모델 - 데이터베이스 구조의 표현 방법 이 때 DB 구조의 구성요소는, 1. 데이터 2. 관계 3. 제약조건 입니다. 데이터의 동적 측면이나 행동이 데이터 모델에 포함되는 경우가 있습니다. ex) 평균 학점을 구할 때, 실제 값을 저장하는 것이 아니라 연산식을 프로그래밍하여 저장 데이터 모델의 종류는 다음과 같습니다. 1. 개념 세계 - 개념(고수준) 데이터 모델 - E-R 데이터 모델을 사용합니다. 2. 논리 세계 - 논리적(구현, 표현) 데이터 모델 - DBMS를 사용합니다. 3. 물리적(기계) 세계 - 물리적(저수준) 데이터 모델 - 파일구조를 사용합니다. 논리적 데이터 모델(DBMS)의 진화 과정입니다. 1세대 : 계층형 데이터 모델 (트리, Parent - Child 관계) - 식별자는 .. 2023. 4. 18.
[Database] 데이터베이스 개요 Database : A Collection of Integrated, Stored, Operational, Shared Data for Multiply Application Systems(Programs) of an Organization 줄여서 CISOSDaMASO 이러한 Database를 관리하는 프로그램을 DBMS(Database Management System)라고 하며, Database와 DBMS 등 모두 합쳐서 Database System이라고 합니다. 데이터베이스에서 특정 레코드를 대표하는 값을 식별자라고 합니다. 1, 2세대 DBMS에서는 주소(Pointer)를 식별자로 사용했습니다. 하지만, 데이터의 추가와 삭제가 자주 일어나게 되면 해당 데이터의 위치가 바뀌어 주소값이 지속적으로 바뀌게.. 2023. 4. 17.