다수의 사용자들이 데이터베이스 내의 데이터에 접근할 수 있도록 하는 소프트웨어 도구의 집합
-* 관계형 모델(Relational Model): 다음의 세 핵심 포인트와 함께 고안되었다.
1. 데이터베이스를 단순한 자료구조에 저장
2. high-level language로 데이터에 접근
3. 물리적 저장소는 구현에 맡겨짐
+. **릴레이션(Relation)
이라는 구조가 사용
-** 릴레이션(Relation) : 각 개체를 표현하는 속성들의 관계들로 이루어짐
1. 튜플(Tuple) : 행(row)과 유사하고, 레코드(Record)라고도 부른다. 한 행을 구성하는 속성들의 집합. NULL이라는 특별한 값을 가질 수 있다.
2. 속성(Attribute) : 열(column)과 유사하다.
3. 스키마(Schema) : 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
4. ***키(Key) : 릴레이션에서 튜플을 구별하기 위해서 사용하는 속성의 집합. 유일성
과 최소성
에 따라서 종류가 구분된다.
-***키(Key)
1. Primary Key (기본키) : NULL값을 갖지 않는 속성이면서, 데이터의 빠른 검색을 위해 간단한 값을 갖는 속성
2. Alternate Key (대체키) : Primary Key를 제외한 나머지 Candidate Key
5. Foreign Key (외래키) : 한 릴레이션으로부터 다른 릴레이션의 튜플을 참조하는 데 사용되는 속성
RDBMS
의 데이터를 관리 및 처리하기 위해 설계된 프로그래밍 언어. 3가지 DBMS 제품(Oracle, SQL Server, MySQL)이 모두 표준 SQL
을 포함하나 추가적으로 자신만의 기능을 가지고 있다.
데이터 검색, 등록, 삭제, 갱신을 위한 데이터베이스 언어
SELECT * FROM users;
INSERT INTO users(field1, field2, field3)
VALUES(data1, data2, data3);
*field는 생략 가능, 이 경우 데이터베이스의 스키마와 같은 순서대로 필드 값 자동 대입
UPDATE users
SET field1 = 'data1',
field2 = 'data2'
WHERE field99 = 'data99';
DELETE FROM users
WHERE field1 = '1';
데이터 베이스 객체(테이블, 뷰, 인덱스 등)을 정의하는 언어
CREATE table users( table1 VARCHAR(8),
table2 TIMESTAMP,
table3 DATE,
table4 NUMBER(6));
*INT(?) : ?는 ZF(zerofill)속성으로 데이터의 남은 빈칸을 0으로 채워준다. 예를 들어 INT(5), 데이터 값이 12라면 00012로 보여짐
ALTER TABLE 테이블명 ADD(추가할 칼럼명, 데이터타입);
ALTER TABLE 테이블명 MODIFY(변경할 칼럼명, 변경할 데이터 TYPE);
ALTER TABLE 테이블명 DROP COLUMN 삭제할 칼럼명;
ALTER TABLE 기존 테이블명 RENAME TO 새로운 테이블명;
DROP TABLE 테이블명