■ 데이터와 데이터베이스
데이터베이스는 데이터(data)와 베이스(base)의 합성어이며 DBMS는 Database Manadement System의 약자로 '데이터베이스 관리시스템'을 의미한다.
사전에서 '데이터'를 찾아보면 '자료', '정보'라는 두 가지 의미가 있다.
하지만 데이터베이스 분야에서 데이터(data)와 정보(information)는 다른 의미로 해석한다.
흔히 데이터를 원석, 정보를 보석으로 비유한다.
데이터는 어떤 필요에 의해 수집했지만, 특정 목적을 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체를 의미한다. 그리고 정보는 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어낼 수 있는 결과로 볼 수 있다.
데이터 중 일부는 엑셀 파일에 저장하고, 일부는 특정 프로그램ㅁ으로 관리하는 파일에 저장하고, 또 다른 일부는 실제 종이 문서에 기록하여 캐비닛에 보관한다면, 수집한 데이터는 분석을 위한 통합 작업만으로도 시간과 비용이 많이 든다.
또한 만약 데이터가 누락되거나 중복된다면 정확한 분석을 기대할 수 없고 결국 비싼 비용과 많은 시간을 투자한 분석이 실패하게 된다.
따라서 가치있는 정보를 얻으려면 데이터를 효율적으로 수집, 통합하고 체계적으로 관리, 분석해야 한다.
위 조건을 만족하면서 특정 목적을 위해 여러 사람이 공유하여 사용할 수 있으며, 효율적인 관리와 검색을 위해 구조화한 데이터 집합을 '데이터베이스'라고 한다.
□ DBMS를 통한 데이터 관리
효율적인 데이터 관리 조건을 만족하며 서비스 제공의 효율성을 높이기 위해 데이터베이스 관리시스템이 등장했다. 데이터베이스 관리 시스템은 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어다.
데이터베이스 관리 시스템은 보통 디비엠에스(DataBase Management System)라고 많이 부르며, 실무에서는 데이터베이스와 데이터베이스 관리 시스템을 따로 구별하지 않고 '디비(DB)' 또는 '데이터베이스'라고 부른다.
응용 프로그램이 필요한 데이터 작업은 DBMS에 요청하면, DBMS는 자신이 관리하는 데이터베이스로 관련 작업을 수행하고 결과값을 제공한다.
이러한 작업 영역의 분리는 응용 프로그램의 서비스 제공과 데이터 관련 작업 효율을 높인다. 또한 여러 응용 프로그램이 하나의 통합된 데이터를 같은 방식으로 사용, 관리할 수 있으므로 데이터 누락이나 중복을 방지할 수 있다.
□ 데이터 모델
데이터 모델이란 컴퓨터에 데이터를 저장하는 방식을 정의해놓은 개념모형이다.
대표 데이터 모델에는 계층형, 네트워크형, 관계형, 객체 지향형 등이 있다.
우리가 앞으로 배우게 될 우라클 데이터베이스는 관계형 데이터 모델을 기반으로한 객체관리형 DBMS이다.
1. 계층형 데이터 모델
나뭇가지 형태의 트리(tree) 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식같은 관계를 정의하고 데이터를 관리한다.
2. 네트워크형 데이터 모델
망형 데이터 모델이라고도 하며 그래프 구조를 기반으로 한다.
3. 객체 지향형 데이터 모델
객체 지향형 데이터 모델은 객체 지향 프로그래밍처럼 데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에서 객체 지향 프로그래밍에서 사용되는 기능을 활용할 수 있다.
4. 관계형 데이터 모델
다른 모델과 달리 데이터 간 관계에 초점을 둔다. 예를 들어 회사의 사원정보와 부서정보를 하나의 묶음으로 관리하면 데이터 구조가 간단해진다. 하지만 같은 부서 사원들은 부서 정보가 중복되므로 효율적인 관리가 어려워진다. 부서의 이름이 바뀌면 일일이 변경해 주어야 하기 때문이다.
이러한 이유로 관계형 데이터 모델에서는 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다. 중복이 발생할 수 있는 데이터는 별개의 릴레이션(relation)으로 정의한 후 사원 정보에 소속된 부서를 식별하는 '부서코드'를 포함하여 사원 정보 데이터와 부서 정보 데이터를 연결하는 것이다.
■ 관계형 데이터베이스와 SQL
관계형 데이터베이스란?
데이터베이스를 관리하는 시스템은 DBMS에 데이터 간의 관계를 강조하기 위한 'relational'을 앞에 붙여 RDBMS (Relational Database Management System), 관계형 데이터베이스 관리시스템이라고 부른다.
SQL이란?
SQL은 Structures Query Language의 약자로 '에스큐엘' 또는 '시퀄'이라고 부른다.
SQL은 RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의언어이다.
□ SQL 종류
□ 오라클 관리자 계정 / 권한
□ 관계형 데이터베이스 구성요소
관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다. 이 표 형태의 데이터 저장공간을 테이블(table)이라고 한다. 테이블은 가로줄을 행(row), 세로줄을 열(colimn)이라고 부른다.
행은 저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태이다.
대학교에서 사용하는 학생 관리 프로그램에서 학생 데이터를 관리할 경우에 학생을 구성하는 여러 값을 나열할 수 있다. 이때 테이블을 구성하는 하나의 행은 학번, 이름과 같은 여러 값으로 이루어진 학생 한 명의 데이터를 의미한다.
열은 저장하려는 데이터를 대표하는 이름과 공동 특성을 정의한다. 각 학생의 데이터를 구성하는 학번과 이름, 그 외에 필요한 정보를 정의해두면 각 학생의 학번, 이름, 학과 코그 등을 통일성 있게 저장할 수 있다. 그리고 열은 저장 정보의 종류(자료형)과 저장 가능한 값의 최대 길이 그리고 값의 중복을 허용하지 않는 등의 저장조건과 범위를 지정할 수 있다.
행을 로우라고 부르고 열을 칼럼이라고 부른다.
□ 키(key)
어떤 문에 꼭 맞는 열쇠가 하나씩 있듯 수많은 데이터를 구별할 수 있는 유일한 값이라는 뜻이다. 키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미한다.
종류별로 데이터를 구별하거나 테이블 간의 연관 관계를 표현할 때 키로 지정한 열을 사용한다.
키는 기본키(primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key) 등으로 구분할 수 있다.
1. 기본키 (Primary key)
기본키(Primary key)는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키다.
기본키는 중복되지 않는다는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있다. 대부분의 경우에 개인정보 노출이 가장 적은 데이터를 선정하기 때문에 학생정보 프로그램에서는 학번을 기본키로 지정할 수 있다.
2. 보조키
보조키는 대체키(alternate key)라고도 부르며 후보키(candidate key)에 속해 있는 키이다. 그리고 후보키 중에서 기본키로 지정되지 않은 열이다.
중복되지 않은 데이터를 가지고 있고 빈 값(NULL)이 없는 열은 기본키가 될 수 있는 후보키이다. 그리고 후보키 중에서 기본키로 선택한 열을 제외한 열이 보조키가 된다.
3. 외래키 (Foreign key)
외래키(Foreign key)는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미한다.
학생정보 테이블 열 중에 '학과 코드'가 있다. 이 학과 코드가 학생정보 테이블과 학과정보 테이블을 이어주는 '외래키' 역할을 한다. 즉 학생정보 테이블은 학과코드를 통해 학과정보 테이블의 세부 정보를 찾아갈 수 있다.
예를 들어 홍길동 학생이 학과 대표 전화번호를 알아내기 위해서는 학번을 통해 학생정보 프로그램 테이블에서 홍길동 학생을 찾아낼 수 있다. 그리고 홍길동 학생 행에 저장된 학과코드를 활용해서 '학과 정보 테이블'을 찾아간다. 그러면 홍길동 학생이 속해있는 해당 학과의 '대표 전화번호' 정보에 접근할 수 있다.
4. 복합키 (Composite key)
복합키(Composite key)는 여러 열은 조합하여 기본키 역할을 할 수 있게 만든 키를 뜻한다.
복합키를 만들 때 적게는 두세 개, 많게는 열 개가 넘는 열을 조합하기도 한다.
□ 오라클 DBA 권한
오라클은 사용자를 추가해도 바로 그 사용자를 쓸 수 없다. 적절한 권한을 주어야 한다. 권한 할당은 누가 해주는 것일까? 바로 DBA의 권한을 가진 사용자가 해주는 일이다.
□ 일반 사용자의 시스템 권한
□ 롤(Roll)
다수 사용자와 다양한 권한을 효과적으로 관리하기 위하여 서로 관련된 권한을 그룹화한 개념이다. 즉 사용자별로 일일이 권한을 주기보다는 그룹에 권한을 주는 것이 훨씬 효과적이기 때문에 권한을 그룹화해서 관리하는 것이다.
■ 오라클
□ 오라클 자료형
1. 문자 데이터 타입
2. 숫자 데이터 타입
3. 날짜 데이터 타입
4. LOB 데이터 타입
□ SQL : 데이터베이스 질의언어
□ 테이블 만들기
□ 데이터 추가하기
□ 데이터 조회하기
1. 전체 조회하기
2. 조건에 맞게 조회하기
□ 데이터 수정하기
□ 데이터 삭제하기
□ 조건에 맞게 조회하기 2 (Key)
두 개의 테이블을 생성한다.
□ 정렬(오름차순, 내림차순)
□ 연산자
1. 산술연산자
2. 비교연산자
3. 논리연산자
4. 기타 연산자(오라클에서만 쓰이는 연산자)
□ DROP TABLE 복구
select * from tab으로 테이블을 조회했을 때 drop된 테이블의 TABLE NAME이 BIN$로 시작하는 이름으로 바뀐 것을 볼 수 있다. (휴지통으로 옮겨짐)
(10g 버전부터 휴지통 기능이 등장해 테이블을 지우면 휴지통으로 옮겨진다.)
'IT&코딩 > JSP' 카테고리의 다른 글
JSP - 9일차 (JDBC2) (0) | 2022.11.30 |
---|---|
JSP - 8일차 (JDBC) (0) | 2022.11.28 |
JSP - 6일차 (Java Server Page) (0) | 2022.11.20 |
JSP - 5일차 (서블릿) (0) | 2022.11.14 |
JSP - 4일차 (자바스크립트) (0) | 2022.11.13 |