-
학원 DAY27. 데이터베이스, SQL기록 2022. 10. 15. 01:20
데이터베이스
- 데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합관리되는 정보의 집합이다.
- 데이터베이스는 관련성 있는 데이터의 모음이다.
- 은행, 예약, 검색, 쇼핑 등 일상 속에서 이용하고 있는 많은 온라인 서비스들에서 DB를 사용한다.
- 데이터베이스는 반드시 데이터베이스 관리 시스템(DataBase Management System, DBMS)과 함께 한다.
데이터베이스 관리 시스템
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다.
- 대표적인 DBMS는 오라클, MYSQL, MS SQL Server, DB2, Maria DB, H2, HSQLDB 등이 있다.
- DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
- 장점
1. 자료의 통합성을 향상시킨다.
2. 데이터의 접근성이 쉬워진다.
3. 데이터의 통제가 강화된다.
4. 보안이 강화된다.
- DBMS를 통해 DB를 사용한다.
- 관계형 데이터베이스(Relational DataBase)를 관리해주는 RDBMS가 가장 많이 사용된다.
데이터베이스 관리 시스템의 종류
- 관계형 데이터베이스관리시스템(sql사용)
Oracle, MySQL, MS SQL Server, DB2, H2, HSQLDB
- No-SQL 데이터베이스관리시스템
- 문서지향 데이터베이스 (Document DataBase)
Mongo DB (json형태로 데이터 저장, json이 모여있는게 컬렉션)
- Key/Value 데이터베이스관리시스템
Redis
- 컬럼기반 데이터베이스관리시스템
HBase, Cassandra
- 그래프 모델 데이터베이스관리시스템
GraphQL
사용자 관점에서의 데이터베이스
- DB는 관련있는 데이터를 모아놓은 것이다.
- 데이터가 많은 경우에 효율적으로 관리하거나 접근관리 등 여러가지 추가기능들을 지원한다.
- 데이터베이스에서는 원하는 데이터를 가져올 때는 직접 데이터베이스에 요청하지 않고, DBMS를 통해서 질의하게 된다.
- DBMS에 질의하기 위해서는 SQL이라는 언어를 사용한다.
- DBMS는 입력된 SQL을 처리하고 필요하다면 DB에 접근하여 작업을 수행한다.
- 데이터베이스는 구조화된 데이터를 저장한다. (열과 행을 갖고 있는 테이블(표)의 형태로 저장)
- 현실 세계의 데이터를 데이터베이스에 저장하기 위해서는 모델링 작업이 필요하다.
- 관계형 데이터베이스에서는 **객체-관계 모델링(Entity-Relationship Modeling)**방법으로 데이터를 모델링한다.
(모델링한 결과를 표현하는데 사용하는 것이 ER다이어그램이다. 다이어그램을 먼저 만들고 다이어그램을 토대로 데이터베이스 안에 테이블을 생성한다.)
데이터베이스의 특징
- 실시간 접근을 지원한다.
- 다수의 사용자 혹은 프로그램이 동시에 데이터를 이용할 수 있다.
- 데이터에 대한 접근이 용이하다.
- 레코드의 주소나 위치가 아닌 내용으로 데이터를 탐색할 수 있다.
- 항상 최신의 데이터를 유지한다.
관계형 데이터 모델
- 관계형 모델에서는 이론적으로 데이터베이스를 관계(Relation)의 집합으로, 관계를 행(Tuple)의 집합으로, 행을 속성(Attribute)의 집합으로 본다.
- 관계형 데이터베이스에서는 관계가 테이블(Table), 행이 레코드(Record), 속성이 컬럼(Column)으로 대치된다.
- 관계라는 이름으로 불리는 이유는 속성과 행이 어떤 관계에 의해 모여진 집합이라고 보기 때문이다.
- 관계형 데이터 모델에서는 속성은 해당 속성이 가질 수 있는 모든 값에 대한 도메인을 가지며, 원자적이어야 한다.
(이름이라는 속성이 있으면 모든 이름을 가질 수 있는 것이 모든 값에 대한 도메인을 갖고 있다고 하는 것이고,
원자적이라는 것은 속성을 더이상 쪼갤 수 없다는 것임)
- 관계형 데이터베이스에는 관계의 집합과 제약 조건의 집합으로 이루어져 있다.
(데이터의 무결성 확보를 위해서, 데이터의 유효성을 유지시키기 위해서 제약조건(예를 들어, 직위는 부장, 차장, 대리, 주임 외에는 못들어감)이 있다.)
테이블
- 데이터베이스에서 데이터의 실질적인 저장소 역할을 수행한다.
- 2차원 표(테이블)의 형태로 데이터를 저장한다.
- 하나의 데이터베이스는 여러 개의 테이블이 존재한다.
- 구성요소
행
다른 행과 완전히 독립적이다.
행의 순서는 중요하지 않으며, 행은 특정한 정보의 모든 데이터를 나타낸다.
열
데이터의 속성을 나타낸다(데이터의 이름, 데이터의 자료형)
같은 열은 같은 종류의 값을 가진다.
열은 서로 다른 이름을 가지고 있다.
하나의 테이블에 이름이 같은 열은 존재할 수 없다.
우리가 데이터를 저장하기 위해서는 열을 먼저 정의해야 한다. 열에다가 행을 추가한다.
SQL (Structured Query Language 구조화된 질의 언어)
- RDBMS를 통해 Database에 엑세스하기 위해 사용하는 특수 목적의 프로그래밍 언어다.
- 구조화된 질의 언어로 형식이 정해져 있다.
- 데이터베이스와 관련된 명령을 작성할 때 사용하는 언어
- SQL의 종류
- 데이터 조작 언어 (개발자가 주로 사용)
- 데이터 정의 언어
- 데이터 제어 언어
- SQL의 장점
- 배우기 쉽다. (사람의 언어와 유사하다.)
- 효율적이다.
- 기능적으로 완벽하다. (SQL을 사용하여 테이블의 데이터를 정의, 검색, 조작이 가능하다.)
- 1970년에 E.F. Codd박사 데이터베이스 시스템을 위한 관계형 모델을 제안하는 논문발표
ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE; -- 오라클 12버전부터 사용자이름을 적을 때 일반영어단어로 적을 수 없다. 그래서 첫줄에 있는 걸 적어야 한다. CREATE USER hr IDENTIFIED BY zxcv1234; -- 오라클 사용자 계정 생성하기 -- 사용자명 : hr, 비밀번호 : zxcv1234 GRANT connect, resource, dba TO hr; -- 사용자에게 시스템권한 부여하기 -- connect role: 데이터베이스 접속권한 -- resource role: 데이터베이스 자원(테이블, 뷰, 시퀀스 객체)을 사용할 수 있는 권한 -- dba role : 데이터베이스 관리자 권한
'기록' 카테고리의 다른 글
학원 day29. 데이터 변경, 삭제, JDBC (0) 2022.10.18 학원 DAY28. SQL (0) 2022.10.15 학원 DAY25~26. 예외 처리(2) (0) 2022.10.12 메소드 작성 관련 (0) 2022.10.08 학원 DAY24. 맵 활용하기 (0) 2022.10.08