1. 데이터 베이스
1. 데이터(자료)와 인포메이션(정보)
- 자료 : 정제되지 않은 데이터
- 정보 : 정제되지 않은 데이터인 자료중에서 저희가 필요한 내용만 추출한 자료
2. 데이터 베이스
- 자료들의 집합. 사람들이 원하는 정보를 찾을 수 있는 기능들을 제공해준다.
- 자료들을 여러 사람이 공유해서 사용할 목적으로 관리하는 데이터 집합체
- 데이터 중복을 없애고 구조화하여 효율적으로 데이터를 관리할 수 있게 해준다.
3. DBMS(Data Base Management System)
- 데이터 베이스를 조작하고 관리할 수 있는 소프트웨어
- 데이터 베이스를 구축할 수 있도록 데이터 베이스 서버를 생성해주고 테이블 및 유저, 스키마 생성과 관리를 지원한다.
- 데이터의 저장, 수정, 삭제, 조회 기능들도 제공되며 SP(Stored Procedure) 등 호출해서 사용할 수 있는 함수(메소드) 같은 기능도 제공한다.
- 데이터를 백업하거나 저장해서 보관하는 것도 용이해지고 보안성도 높아져서 해킹에서도 자유롭다.
- ERD(Entity Relationship Diagram) : 테이블 설계 다이어그램을 그리는 기능도 제공. 논리 ERD와 물리 ERD 두 가지가 존재.
- DBMS의 종류 : Oracle, MySql, MongoDB, MariaDB, MsSql, Tibero...
4. RDB(Related Data Base)
- 관계형 데이터 베이스 : 데이터와 데이터 사이의 관계를 형성해주는 데이터 베이스. 데이터와 데이터 사이에 부모자식 관계를 형성하여 상위 데이터와 하위 데이터를 구분하여 사용할 수 있게 된다.
ex) 회원(유저아이디, 유저네임, 가입일시.....) -> 게시판(게시글번호, 게시글제목, 게시글내용,... , 작성자아이디) : 회원으로 가입된 유저아이디만 게시글을 작성할 수 있도록 유저테이블과 게시판테이블의 관계을 생성한다.(ForeignKey) - 관계형 데이터 베이스를 이용하면 ORM(Object Relation Mapping) 프레임워크를 사용할 때 테이블을 하나의 클래스로 정의하여 클래스들의 관계를 테이블들의 관계와 동일하게 매핑하여 사용할 수 있다.
5. DBMS의 구조
- CS(Client-Server) 프로그램의 구조를 갖는다.
- Oracle 21c xe, MySql Server 5.8, PostgreSql Server... 서버의 역할을 한다.
- SqlDeveloper, DBeaver, Toad, MySql Workbench... 클라이언트의 역할을 한다.
- 서버 프로그램이 시작되면서 소켓을 생성하여 해당 포트로 접속 가능한 상태가 되면 클라이언트 프로그램에서 서버 프로그램에 접속하여 서버 프로그램의 자원들을 사용할 수 있는 프로그램의 형태
- 동일한 PC에 서버가 구동되고 있을 때는 호스트(아이피주소)는 localhost나 127.0.0.1로 사용할 수 있고 그외의 경우에는 서버 PC의 아이피주소를 사용해야 한다. 단, 서버PC에서 해당 포트의 방화벽을 해제해줘야 접속 가능하다. 포트포워딩을 설정하면 외부에서도 접속이 가능하다.
6. Oracle 초기 작업
- Cmd를 실행하고 sqlplus 입력
- 관리자 계정인 sys /as sysdba를 사용자이름으로 입력
- 비밀번호는 오라클 21c xe 설치할 때 지정한 비밀번호 입력
- 유저 생성
- create user (c##: 오라클 12 이후 버전은 무조건 붙여줘야한다.)사용할아이디 identified by "비밀번호";
- 유저에 커넥션 권한을 주지 않으면 접속자체가 불가능(CREATE SESSION 권한이 없어서)
- 생성한 유저에 권한 부여
- grant 권한1, 권한2, 권한3, ... to 유저아이디;
- grant connect(DB 접속 권한), dba(관리자 권한), resource(자원사용 권한) to 유저아이디;
- grant select, delete, insert, update on 테이블명 to 유저아이디; (해당 테이블에 대한 조회, 삭제, 저장, 수정 권한 부여)
- grant all on 테이블명 to 유저아이디; (해당 테이블에 대한 모든 권한 부여)
- grant all on 테이블명 to public; (해당 테이블에 대한 모든 권한을 모든 유저에게 부여)
- 권한을 삭제하는 명령
- revoke 권한1, 권한2, 권한3 .... from 유저아이디;(해당 사용자로부터 지정한 권한을 삭제)
- 사용자 삭제 명령
- drop user 사용자아이디;
- 사용자에게 부여된 역할 확인
- select * from dba_role_privs
where grantee = 사용자아이디(대문자);
- select * from dba_role_privs
- 역할에 부여된 권한목록 확인
- select * sys_role_privs
where role = 역할(CONNECT, DBA, RESOURCE....);
- select * sys_role_privs
7. 조회 쿼리 작성요령
- 어떤 테이블에서 어떤 데이터를 가져와서 어떻게 보여줄건지 정하고 쿼리를 작성해야 한다.
ex) 기말고사 성적을 조회하는데 학생이름과 과목이름을 동시에 조회하고 싶다.
SCORE.SNO STUDENT.SNAME SCORE.CNO COURSE.CNAME SCORE.RESULT
- SELECT SCORE.SNO
FROM SCORE, STUDENT.SNAME , SCORE.CNO , COURSE.CNAME , SCORE.RESULT
INNER JOIN STUDENT ON SCORE.SNO = STUDENT.SNO
INNER JOIN COURSE ON SCORE.CNO = COURSE.CNO;
- 조회 쿼리는 원하는 데이터들만 뽑아서 새로운 가상테이블을 만들어서 사용한다라고 생각.
728x90
'네이버클라우드 캠프 5기 > 학습내용 정리' 카테고리의 다른 글
13. ORACLE - Select (0) | 2023.04.13 |
---|---|
12. Oracle - SQL (0) | 2023.04.12 |
10. JAVA - LamDa (0) | 2023.04.11 |
9. JAVA - MultiThread (0) | 2023.04.11 |
8. Java - Enum (0) | 2023.04.05 |