교재
컴원 chap2, 3
데이터베이스 기초 활용하기
1. 정의 : 데이터베이스 - 자료를 저장해놓는 공간. 데이터의 집합
2. 종류
1) 파일시스템
2) 계층형 데이터베이스 관리시스템
3) 망형 데이터베이스 관리시스템
4) 관계형 데이터베이스 관리시스템 (RDBms) - 파일을 테이블단위로 저장
- Oracle, SQL Server (MS SQL) , MySQL, Maria DB
3. 관계형데이터베이스(RDB) & NoSQL데이터베이스
관계형데이터베이스(RDB) | NoSQL데이터베이스 |
Oracle DB, MySQL | MongoDB |
SQL문이 필요 | SQL문이 없다 |
4. 데이터베이스 관리시스템(DBMS) 특징
1) 데이터 무결성: 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지
않는 성질
2) 데이터 일관성: 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
3) 데이터 회복성: 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
4) 데이터 보안성: 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
5) 데이터 효율성: 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족
시켜야 하는 성질
5. 관계형은 분리해서 자료를 저장,
6. 시스템 특징
구분 | 설명 | 예제 |
관계형 DBMS (Relational DBMS) |
- 테이블의 구조(스키마)를 정의하고 테이블 간의 관계를 정의하여 데이터를 관리 - 가장 광범위 하게 쓰이는 DBMS - 비관계형 부분까지 확장하여 관리 범위를 넓힌 형태의 관계형 DBMS 출시 |
Oracle MySQL MS SQL Server PostgreSQL DB2 Maria DB |
문서 저장 DBMS (Document store) |
- 관계형 DBMS와는 달리 스키마 구조 필요 없음 - 일관된 구조가 필요 없음 - 칼럼은 하나 이상의 값을 가질 수 있음 - Client단에서 후처리 필요 |
Mongo DB Amazon Dynamo DB Couchbase MS Azure cosmos DB |
그래프 DBMS (Graph DBMS) |
- 노드와 에지로 특징되는 요소 특화 - 노드 간 관계를 구조화하여 저장 |
Neo4j MS Azure cosmos DB OrientDB ArangoDB |
키값 DBMS (Key-value DBMS) |
- 가장 간단한 형태의 DBMS - 임베디드 시스템과 같은 간단한 시스템에 적합 |
Redis Amazon Dynamo DB Memcached |
데이터베이스 관리
- 선생님 강의자료 카페 참조하기
Oracle DB Server 구축하기
무료배포버전 -> 로그인 후 다운로드 하기
*주의사항 : 컴퓨터이름에 한국어가 들어가면 안된다. 오류생김
1. 오라클 서버 설치하기
1) setup.exe 풀기
2) 최고 운영자 super user ID : sys, system // super user PW : oracle
- 비번 최대한 통일시키기 안까먹게
MySQL ID: root / MSSQL ID : sa
3) summary
- oracle port : 8080 으로 설정되어있다.
- db listnet port : 1521로 설정 (못바꿈, 데이터베이스 접근 포트번호)
pc 안에 오라클 -> 오라클입장 포트번호 8080-> 오라클안에 db -> db listner 입장 포트번호 1521
2. 오라클 서버 삭제하기
제어판 -> 프로그램 및 기능
-> Oracle Database 11g Express Edition -> 우클릭
-> 제거
3. 오카클 서버 서비스 확인
시작-> 서비스 -> OracleServicXE 확인 ->서비스 중지 및 시작 조절 가능
또는
시작-> 모든프로그램 -> Oracle Database 11g Express Edition ->Start Database/ Stop Database
4. 오라클 명령어 입력 툴
- 데이터베이스 관련 명령어
-> SQL문 (Stored Query Language)
-> 대소문자를 구분하지 않음
-> ANSI(표준) 와 자신만의 DB명령어
-> 종결문자 ;
-> 결과중심적 언어 , 한번에 데이터 추출이 쉽지않다.
1) Oracle SQL Developer : Oracle 사이트 -> Menu-> Product -> Developer Tools -> Oracle SQL Developer
2) 시작 -> 모든프로그램
-> Oracle Database 11g Express Edition
-> Run SQL Command Line
>connect 서비스 잘 되고 있는지 확인하는 법, user-name : system 적고, password는 oracle
비밀번호는 적을 때 문자로 나오지않는다.
>exit 누르면 RUN을 나간다
3) 시작 -> cmd -> sqlplus -> id, pw 입력 -> ctrl+c or exit 로 dos로 돌아오기
로그인하는 방법
- 1 . sqlplus system/oracle : 이건 노노 비번이 공개되서
- 2. 비번없이 들어가는 방법 sqlplus / as sysdba (띄어쓰기준수! )
내컴퓨터 -> 고급시스템설정 -> 고급 -> 환경변수 -> path(oracle)
5. 테이블 스페이스 생성 create
- 데이터베이스 생성 : My SQL, Maria DB, MS-SQL
-> create database DB명
- 테이블 스페이스 생성 : Oracle DB
create tablespace 테이블스페이스이름
datafile '데이터파일경로' size 초기사이즈
autoextend on
next 자동증가사이즈
maxsize 최대사이즈;
- 시작-> cmd ->
SQL>create tablespace java0514 (파일명)
datafile 'd:\java0514\java0514.dbf' size 50m
autoextend on
next 10m
maxsize unlimited;
* 파일명을 바꾸고 싶으면 첫번째줄의 java0514를 변경하면 된다.
6. 오라클 DB 서버 사용자 계정 만들기
-> 시작 -> cmd -> sqlplus
crate user 아이디 identified by 비번
default tablespace 테이블스페이스이름;
SQL> create user java0514 identified by 1234
defualt tablespace java0514;
7. 사용자 계정 삭제 drop
-> 시작 -> cmd -> sqlplus
drop user 아이디 cascade;
SQL>drop user java0514 cascade;
8. 사용자 계정 보안
- 발급받은 계정에 대해 권한부여를 주어야 사용가능하다.
9. 사용자 권한 부여 grant
-> 시작 -> cmd -> sqlplus
SQL>grant connect, resouce, dba to java0514;
exit;
-> 새로만든 계정 java0514에 사용자 권한부여를 했다. 이 계정으로 로그인을 성공한 기록도 있다.
※ connect 접속권한
resource 데이터베이스안에 있는 자원들을 사용할 수 있는 권한
dba 관리자권한
-> 권한취소
revoke 권한종류1, 권한종류2 from 계정
SQL> revoke connect, resource from ora1210
-> 계정 수정
alter user 계정명 수정사항
-> 사용자 삭제
DROP USER userid CASCADE;
관계형 데이터베이스 활용
1. 테이블 - 구조
- Schema (스키마)라고도 불림
- 데이터베이스 저장 단위
- 물리적 테이블 :
- 논리적 테이블 : 내가 만든 테이블
2. 테이블 생성 및 삭제
- 테이블 생성
create table 테이블명(
칼럼1 자료형 제약조건,
칼럼2 자료형 제약조건,
칼럼3 자료형 제약조건
);
제약조건 : ex) null값 허용, 비허용
- 테이블 삭제
drop table 테이블명;
ex)
성적 -> 테이블명
-------------------------------------
번호 이름 국어 영어 수학 평균 -> 칼럼
-------------------------------------
1 무궁화 90 80 70 80 -> 줄 row, record
2 송아지 80 90 70 80
칼럼 column
*DB에서 주석달 땐 , --
create table sungjuk(
sno int, --숫자형
uname varchar(10), --문자열형 ' ' , 이름들어가는 곳 10칸으로
kor int,
eng int,
mat int,
aver int
);
데이터베이스 관리
- 데이터베이스 기본연산 CRUD
1. 행추가 Create - Insert
insert into 테이블명(칼럼1, 칼럼2 ~)
values(값1, 값2 ~);
insert into sungjuk(sno, uname, kor, eng, mat)
values(1, '무궁화', 90, 80, 70);
insert into sungjuk(sno, uname, kor, eng, mat)
values(2, '송아지', 80, 90, 70);
insert into sungjuk(sno, uname, kor, eng, mat)
values(3, '돼지', 60, 90, 80);
2. 조회 및 검색 Read - Select
select 칼럼명 from 테이블명
select sno, uname from sungjuk;
select sno, uname, kor, eng, mat from sungjuk;
select * from sungjuk; --전체 모든 칼럼조회, 자바에선 헷갈리니 사용하지 않는걸로
3. 행 수정 Update - Update
update 테이블명 set 칼럼1=값1, 칼럼2=값2, ~
update sungjuk set aver=(kor+eng+mat)/3;
4. 행 삭제 Delete - Delete
- Delete 하면 백업안되기 때문에 미리 백업 잘 해놔야한다.
delete from 테이블명;
delete from sungjuk;
count(*) sungjuk테이블안에 있는 행 갯수 세기
연습하기
한글 한글자 당 3BYTE
CREATE TABLE Address(
SEQ_ID int,
Address1 varchar(15),
Address2 varchar(40),
Address3 varchar(50),
Postal_Code varchar(15),
Client_ID varchar(10));
insert into Address(SEQ_ID, Address1,Address2, Address3, Postal_Code, Client_ID)
values(1, '서울특별시', '강남구 삼성동 44번지', 'A아파트 1동 101호', '50693', '321');
insert into Address(SEQ_ID, Address1,Address2, Address3, Postal_Code, Client_ID)
values(2, '경기도', '성남시 분당구 정자동 66번지', 'B아파트 5동 111호', '12301', '441');
insert into Address(SEQ_ID, Address1,Address2, Address3, Postal_Code, Client_ID)
values(3, '서울특별시', '강남구 삼성동 64길', 'C아파트 3동 190호', '50693', '216');
insert into Address(SEQ_ID, Address1,Address2, Address3, Postal_Code, Client_ID)
values(4, '경기도', '성남시 분당구 정자동 44길', 'D아파트 5동 111호', '12301', '435');
'공부 > 응용 SW' 카테고리의 다른 글
6월21일 - SW활용 JDBC : java에 DB연결하기 (0) | 2019.06.21 |
---|---|
6월20일 - SW활용 Oracle (0) | 2019.06.20 |
6월18일 - SW활용 네트워크 (0) | 2019.06.18 |
6월17일 - SW활용 운영체제 + 네트워크(thread) (0) | 2019.06.17 |
6월13일 - DOS명령어 만들기 (0) | 2019.06.13 |