본문 바로가기
728x90

👨‍💻Computer Science/데이터베이스16

[Database] 프로그램과 MYSQL 연동 시 필요한 SQL 1. JDBC 드라이버 (Java DataBase Connectivity 드라이버) 자바에서 데이터에비스를 사용할 때에는 JDBC API를 이용해서 프로그래밍 한다. JDBC 드라이버는 DBMS와 통신을 담당하는 자바 클래스 자바는 DBMS의 종류에 상관없이 하나의 JDBC API를 사용해서 데이터데이스 작업을 처리할 수 있기 때문에 익혀두면 모든 DBMS에서 이용이 가능하다. JDBC의 구조 위에 언급했듯 자바 기반 어플리케이션에서 데이터베이스를 사용할 때에는 데이터베이스 종류에 상관없이 JDBC API를 이용해서 데이터베이스에 접근하게 된다. 각각의 DBMS는 자신에 알맞는 JDBC 드라이버를 제공하며, JDBC API는 JDBC 드라이버를 거쳐 데이터베이스와 통신한다. ex. java 기반 어플리케.. 2022. 4. 6.
[Database] 04 - 4 SELECT문 SELECT문 관계 데이터베이스에서 정보를 검색하는 SQL문 관계 대수의 실렉션과 의미가 완전히 다름 관계 대수의 실렉션, 프로젝션, 조인, 카티션 곱 등을 결합한 것 관계 데이터베이스에서 가장 자주 사용됨 여러 가지 질의들의 결과를 보이기 위해서 그림 4.8의 관계 데이터베이스 상태를 사용함 기본적인 SQL 질의 SELECT절과 FROM절만 필수적인 절이고, 나머지는 선택 사항 *일반 계산을 할 때는 SELECT 3+5 FROM DUAL(임의의 더미 테이블) *WHERE절은 관계 대수의 실렉션 연산과 같은 기능 *GROUP BY 그룹으로 만들기 *HAVING절 그룹화된 집계 함수를 적용한 그룹에 대해서 조건을 줄 때 사용 *ORDER BY절 값에 따라 정렬시킴(결과 릴레이션에 적용되는 것임) 별칭(al.. 2021. 10. 7.
[Database] 04 - 3 데이터 정의어와 무결성 제약조건 데이터 정의어 스키마의 생성과 제거 - SQL2에서는 동일한 데이터베이스 응용에 속하는 릴레이션, 도메인, 제약조건, 뷰, 권한 등을 그룹화하기 위해서 스키마 개념을 지원 CREATE SCHEMA MY_DB AUTHORIZATION kim; DROP SCHEMA MY_DB RESTRICT; DROP SCHEMA MY_DB CASCADE; 릴레이션 정의 릴레이션 제거 DROP TABLE DEPARTMENT; ALTER TABLE ALTER TABLE EMPLOYEE ADD PHONE CHAR(13); 인덱스 생성 CREATE INDEX EMPDNO_IDX ON EMPLOYEE(DNO); 제약조건 CREATE TABLE EMPLOYEE ( ID NUMBER, NAME CHAR(10), SALARY NUMBE.. 2021. 10. 7.
[Database] 04 - 2 SQL 개요 SQL 개요 SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는데 중요한 요인의 하나 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL 표준을 채택함으로써 SQL이 널리 사용되는데 기여 다양한 상용 관계 DBMS마다 지원하는 SQL 기능에 다소 차이가 있음 본 책에서는 SQL2를 따름 관계 데이터 모델은 집합을 기반을 두고 있어 테이블 내에 동일한 투플을 허용하지 않지만 SQL은 이를 허용함 SQL은 비절차적 언어(선언적 언어)이므로 사용자는 자신이 원하는 바(what)만 명시하며, 원하는 것을 .. 2021. 10. 7.
[Database] 04 - 1 관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 - 관계 해석(relational calculus) 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어 - 관계 대수(relational algebra) 어떻게 질의를 수행할 것인가를 명시하는 절차적 인어 관계 대수는 상용 관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초 관계 대수는 SQL을 구현하고 최적화하기 위해 DBMS의 내부 언어로서도 사용됨 SQL - 상용 관계 DBMS들의 사실상의 표준 질의어인 SQL을 이해하고 사용할 수 있는 능력은 매우 중요함 - 사용자는 SQL을 사용하여 관계 데이터베이스에 릴레이션을 정의하고, 관계 데이터베이스에서 정보를 검색하고, 관계 데이터베이스를 갱신하며, 여러 가지 무.. 2021. 9. 16.
[Database] 02 - 4 무결성 제약조건 데이터 무결성(data integrity) 데이터의 정확성 또는 유효성을 의미 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적으로 또는 명시적으로 정의함 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사하므로 응용 프로그램들은 일관성 조건을 검사할 필요가 없음 도메인 제약조건(domain constraint) 각 애트리뷰트 값이 반드시 원자값이어야 함 애트리뷰트 값의 디폴트 값, 가능한 값들의 범위 등을 지정할 수 있음 데이터 형식을 통해 값들의 유형을 제한하고, CHECK 제약 조건을 통해 값들의 범위를 제한할 수 있음 SQL2는 도메인을 명시적으로 정의하는 것을 허용하지만, 오라클은 지원하지 않음 기본 키와 엔티티 무결성 제약조건(entity integrity constraint).. 2021. 9. 14.
[Database] 02 - 3 릴레이션의 키 릴레이션의 키 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임 수퍼 키(superkey), 후보 키(candidate key), 기본 키(primary key), 대체 키(alternate key), 외래 키(foreign key) 수퍼 키 (superkey) 한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합 예: 신용카드 회사의 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호) 투플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음 필요하지 않은 애트리뷰트를 포함할 수 있음 후보 키 (candidate key) 각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임 (예: (신용.. 2021. 9. 14.
[Database] 02 - 2 릴레이션의 특성 릴레이션 투플들의 집합(중복허용x, 순서없음) *투플들은 서로 다르다. *투플들 간에 값이 다른 애트리뷰트들의 집합이 있다.(키, 최소 하나는 존재, 여러 개가 있을 수 있다.) 릴레이션의 특성 각 릴레이션은 오직 하나의 레코드 타입만 포함 한 애트리뷰트 내의 값들은 모두 같은 유형(같은 도메인에 속함) 애트리뷰트들의 순서는 중요하지 않음 동일한 투플이 두 개 이상 존재하지 않음 (키가 존재함, 투플들의 집합이기 때문) 한 투플의 각 애트리뷰트는 원자값을 가짐 각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유 투플들의 순서는 중요하지 않음 2021. 9. 14.
[Database] 02 - 1 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은 1970년 대에 IBM 연구소에서 개발된 System R 1980년대 후반부터 여러 가지 데이터 모델들이 새로 등장했지만 관계 DBMS는 여전히 가장 널리 사용되는 DBMS 관계 데이터 모델이 큰 성공을 거둔 요인 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용 중첩된 복잡한 구조가 없음(이해하기 쉽고 사용하기 쉽다) 집합 위주로 데이터를 처리(수학의 기초를 알고 있는 사람이라면 누구나 이해가능) 다른 데이터 모델에 비해 이론이 잘 정립되었음(생각하지 못.. 2021. 9. 14.
728x90