'Back-End/Data Base'에 해당되는 글 38건

  1. 2019.07.15 ERD (ER 다이어그램) 작성 방법
  2. 2019.07.08 ERD (ER 다이어그램) Cloud
  3. 2019.07.08 MongoDB 문법, SQL과의 비교
  4. 2019.07.03 오라클 반복문 (for loop, while loop)
  5. 2019.07.03 오라클 변수 선언
  6. 2019.06.27 기본 용어 정리
  7. 2019.06.27 무결성이란?
  8. 2019.05.28 오라클 SQL Develope 다운로드 및 설치

ERD (ER 다이어그램) 작성 방법

Back-End/Data Base 2019. 7. 15. 16:51
728x90
반응형

데이터 모델은 데이터베이스에 독립적이다.

 

정보 시스템을 개발하기 전에 보다 많은 아이디어를 도출하고 데이터베이스 설계의 이해를 높이기 위해

 

데이터모델링을 한다,

 

관계형 데이터 모델은 실체(Entity), 속성(Attribute), 관계(Relationship)로 구성된 ER Diagram으로 표현된다.

 

 

관계형 데이터 모델 - 데이터베이스 개발 과정

 

  1. 업무 정보화 요구
  2. 개념 데이터 모델링 - 분석, 전략 수립
  3. 데이터베이스 설계 - 설계
  4. 데이터베이스 생성 - 개발

 

 

ERD는 개념 데이터 모델링 단계에서 작성하는 다이어그램

 

 

실체(Entity) : 관리하고자 하는 정보의 실체

 

ㄴ둥근 사각형으로 작성

ㄴEntity 이름은 단수형이고 유일하며 대문자로 크게 표기 할 것. ( )안에 동의어 표기 가능.

ㄴ모든 Entity는 하나 이상의 식별자 (UID : Unique Identifier)을 가져야한다.

ㄴUID가 없다면 Entity가 아님

 

 

 

속성(Attribute) : Entity를 구성하고 있는 구성 요소

 

ㄴAttribute 이름은 소문자로 작게 표기할 것.

ㄴEntity 이름과 Attribute 이름이 같으면 안됨.

ㄴ"#"  은 UID. "*"는 필수(Mandatory). "o"는 선택(Optional) Attribute를 의미

ㄴ자신의 Attribute가 아니면서 Relation을 위해 자신의 Attribute로 표시해서는 안된다.

 

 

 

관계(Relationship) : Entity간의 관계

 

ㄴ 두 Entity 사이에 선을 긋고 관계 명칭을 기록한다.

ㄴ 선택 사항을 표시한다.

ㄴ 점선은 선택 (may be) 을 의미 (부서입장에서는 사원을 배치받을 수도 있고, 안받을 수도 있기 때문에)

ㄴ 실선은 필수 (must be) 를 의미 (사원입장에서는 반드시 부서에 배치되어야 하기 때문)

ㄴ 관계 형태를 표시한다.

ㄴ 새 발 모양은 하나 이상 (one or more) 을 의미 (사원 여러명이 한 부서에 속할 수 있기때문)

ㄴ 단 선은 단 하나 (one and only one) 를 의미 (한명의 사원은 한 부서에만 소속될 수 있다.)

 

 

 

 

Relationship 표현

 

 

 

 

Relationship 읽기

 

 

먼저 한 방향 (좌 -> 우)을 읽고 난 후에 다른 방향 (우 -> 좌)을 읽는다.

 

 

 



  관계 형태 - 1 : 1 관계


  


  ㄱ. 양쪽 방향 모두 단 하나씩 (one and only one) (라면은 두개 이상의 스프를 포함하고 있지 않고, 스프도 한개이상의 라면에 들어있지 않다.)


  ㄴ. 드물게 발생되는 형태


  ㄷ. 양방향 모두 반드시 (must be) 가 되는 경우는 아주 드물다.


  ㄹ. 1 : 1 관계는 실제로는 동일한 ENTITY일 경우가 많다.

 

 

 



  관계 형태 - M : 1 관계


  


  
  ㄱ. 한쪽 방향은 하나 이상 (one or more) (각 사원은 단 하나의 부서에 반드시 소속되어야 하고, 각 부서는 여러명의 사원을 배치받을 수 있다.)


  ㄴ. 다른 방향은 단 하나씩 (one and only one)


  ㄷ. 가장 일반적인 관계 형태


  ㄹ. 보통 must be와 may be로 지정되나 양방향 모두 must be로 지정되는 경우도 있다.

 

 

 

  
  관계 형태 - M : M 관계
  
  


  ㄱ. 양쪽 방향 모두 하나 이상 (one or more) 
       (각 학생은 하나이상의 교육과정에 신청할 수도 있고, 각 교육과정은 여러 학생을 등록 받을 수 있다.)


  ㄴ. 자주 발생되는 형태이지만 최종 결과에서는 M : M 관계는 나타나지 않는다.


  ㄷ. 상세 개념모델링 (Advanced Conceptual Data Modeling) 단계에서 M : 1 관계로 분할된다.
       (M : M관계를 그대로 놔두면 문제가 발생되기 때문)


   - ( 학생과 교육과정 사이에 교육과정 사이에 "수강신청"이라는 Entity를 만들어서 학생은 자신이 수강신청한 
     교육과정에만 관계를 맺고 있으면 된다. 이런식으로 M : M 관계를 M : 1 관계로 분할시키면 된다. )

 

 

 



  UID Bar


  한 사람의 사원의 부양가족을 확인하려면 부양가족 테이블에 "사번" Entity가 있어야 하는데 


  부양가족의 UID를 -> 사번 + 주민번호 (기본키를 복합키로) 로 해서 한 사람의 사원에 대한 부양가족을 찾을 수 있다.


  

 

 

 



 데이터베이스 설계


 - Entity를 Table로 Mapping


 - Attribute를 Column으로 Mapping


 - UID를 Primary Key로 Mapping


 - Relationship을 Foreign Key로 Mapping

 

 

관계형 데이터 모델 - 요약

 



 - 데이터 모델은 데이터베이스에 독립적이다.


 - 데이터 모델링은 건축물의 설계도를 그리는 작업과 같다. 


 - 관계형 데이터 모델은 여러 가지 데이터 모델 중 가장 널리 사용되는 모델이며, 실체(Entity), 속성(Attribute), 관계(Relationship)로 구성된
   ER Diagram으로 표현된다.


 - Entity는 하나 이상의 식별자 (UID : Unique Identifier)를 가져야 하며 UID가 없다면 Entity가 아니다.


 - E - R Diagram 작도 시 관계를 표현할 때에는 어떤 Entity가 주(主) 인가를 잘 따져서 표현한다.


 - 관계의 종류에는 M : 1, M : M, 1 : 1 이 있는데 M : 1 관계가 대부분이다.
   M : M 관계는 상세 관계 모델링 단계에서 M : 1로 분할 되며, 1 : 1 관계는 대부분 하나의 Entity로 표현 가능한 경우가 많다.


 - 관계형 데이터베이스는 2차원 테이블로 데이터를 표현한다.

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

출처

https://www.youtube.com/watch?v=mehjXqNKvh8

728x90
반응형
:

ERD (ER 다이어그램) Cloud

Back-End/Data Base 2019. 7. 8. 18:09
728x90
반응형


https://www.erdcloud.com


ERD Tool 무료 사이트




출처

https://cafe.naver.com/tjoeungame3

728x90
반응형
:

MongoDB 문법, SQL과의 비교

Back-End/Data Base 2019. 7. 8. 12:17
728x90
반응형


- MongoDB 문법 -


 

      db.memo.count( ) //db안에 들어가 있는 객체들의 갯수를 확인 ( 객체와 그 객체에 대한 속성값을 3번 삽입했으므로 3이 출력된다)



삭제할때는 memo.remove({_id : 2})



// member Collection에 자료 입력

db.member.save(    {_id : "kim", passwd : "1234", name : "김철수"    }    )



// 컬렉션 생성 (테이블에 해당됨)

테이블을 미리 만들고 작업할 수도 있지만 궂이 먼저 만들지 않고 아래 코드처럼 데이터를 입력하면서 만들 수도 있다.

db.createCollection("customers")



// 데이터를 입력하면서 동시에 collection 생성

db.customers.insert(    { name : "김철수", age : 22   }    )



//컬렉션 목록

show collections

db.<collection 이름>.insert(<생성할 데이터>)



//데이터 생성

db.customers.insert(    {name : "이철호", age : 25}    )

db.customers.insert(    {name : "lee", age : 35    }    )

db.customers.insert(    {name : "hong", age : 45    }    )

db.customers.insert(    {name : "park", age : 55    }    )



//데이터 읽기

db.<collection 이름>.find(<검색 조건>)

db.customers.find(    {name : "김철수"}    )



//데이터 수정

db.<collection 이름>.update(<업데이트할 데이터선택>,<데이터를 입력>)


 

//수정 확인

db.customers.find( )



//데이터 삭제

db.<collection 이름>.remove(<삭제할 데이터 선택>)

db.customers.remove(    {name : "kim"    }    )

db.customers.find( )



//데이터 조회

db.customers.find( )

db.<Collection 이름>.find({ }, {"<표시할 field>" : 1, "<표시하지 않을 field>" : 0})

db.customers.find({ }, {"_id" : 0, "name" : 1})



//db.<collection 이름>.find().limit(<보여주고 싶은 데이터 개수>)

db.customers.find().limit(1)



//db.<collection 이름>.find().skip(<건너뛰고 싶은 데이터 행수>)

db.customers.find().skip(2)



//db.<collection 이름>.find().sort("<정렬에 사용할 기준 field>" : <1 혹은 -1>), 1과 -1은 

오름차순과 내림차순을 구분할때 사용한다.

db.customers.find().sort({"age" : 1})     //오름차순 정렬

db.customers.find().sort({"age" : -1})    //내림차순 정렬



//함수 여러개 호출 가능

db.customers.find().skip(1).limit(2) //하나를 건너뛰고 2개만 찾으라는 의미



//정확히 일치하는 자료를 검색

db.<collection 이름>.find({"<검색할 field>" : <찾을 값>})

db.customers.find({"age" : 25})



//Less Than Equals 검색

db.<collection 이름>.find({"<검색할 field>" : {"$lte" : <기준 값>}})

db.customers.find({"age" : {$lte : 20}}) //20보다 작거나 같은 나이를 검색



//Greater Than 검색

db.<collection 이름>.find({"<검색할 field>" : {"$gt" : <기준 값>}})

db.customers.find({"age" : {$gt : 25}}) //25보다 큰 나이를 검색



//Greater Than Equals 검색

db.<collection 이름>.find({"<검색할 field>" : {"$gte" : <기준 값>}})

db.customers.find({"age" : {$gte : 25}})



//Not Equals 검색

db.<collection 이름>.find({"<검색할 field>" : {"$ne" : <기준 값>}})

db.customers.find({"age" : {$ne : 25}})



//And 조건

db.<collection 이름>.find({$and : ["<검색할 field>" : {"<검색할 field>"} , {"<검색할 field>" : <기준 값>}]})

db.customers.find($and : [{"age" : {$gte : 23}}, {"name" : "park"}])     //나이가 23보다 크거나 같으면서 이름이 park라는 사람을 찾는 구문



//Or 조건

db.<collection 이름>.find({$or : ["<검색할 field>" : {"<검색할 field>"}, {"<검색할 field>" : "<기준 값>"}]})

db.customers.find({$or : [{"age" : {$gte : 23}}, {"name" : "park"}]})    //나이가 23보다 크거나 같고 or 이름이 park인 사람 찾는 구문






-sql과의 비교 (mongoDB는 기본적으로 SQL문법을 사용하지 않는다)-


Mongo DB에서는 Primary Key (기본키)를 _id라고 써야한다.


      


      Insert


SQL    : insert into users ("name",city) values ("terry","seoul")


Mongo DB : db.users.insert({id : "terry", city : "seoul"}) // { }중괄호 안에는 제이슨 문법




Select


SQL    : select * from users where id = "terry"


Mongo DB : db.users.find({_id : "terry"})




Update


SQL    : update users set city = "busan" where _id = "terry"


Mongo DB : db.users.update ({_id : "terry"}), {$set : {city : "Busan"}}) //id가 terry인것을 찾아서 city를 Busan으로 바꾸라는 쿼리




Delete


SQL    : delete from users where _id = "terry"


Mongo DB : db.users.remove({_id : "terry"})





  -DB 목록-


  show dbs (현재 사용중인 데이터베이스 목록을 보여줌)



  -db 생성-


  use testdb (testdb 데이터베이스를 만들고 testdb데이터베이스를 사용한다)



  -현재 사용중인 db 이름-


  db



  -전체 데이터베이스 목록-


  show dbs (현재 testdb 데이터베이스를 사용하고 있으므로, 그 안에 있는 데이터베이스들을 보여준다)


  




728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

ERD (ER 다이어그램) 작성 방법  (0) 2019.07.15
ERD (ER 다이어그램) Cloud  (0) 2019.07.08
오라클 반복문 (for loop, while loop)  (0) 2019.07.03
오라클 변수 선언  (0) 2019.07.03
기본 용어 정리  (0) 2019.06.27
:

오라클 반복문 (for loop, while loop)

Back-End/Data Base 2019. 7. 3. 13:42
728x90
반응형

- for loop -


[문법 예시]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SET serveroutput ON; //서버에서 출력되는 값을 기본값을 설정
 
BEGIN // 반복문의 시작 부
 
FOR i in 1..4 LOOP // 4번 회전시킨다는 의미
 
if mod(i, 2= 0 then //짝수인지 홀수인지 판단하기 위해 i를 2로 나누었을때의 값이 0인지 아닌지 판ㅇ
 
dbms_output.put_line(i || '는 짝수!!'); //if구문이 참이면 실행되는 구문 ex) 2는 짝수!!
 
else
 
dbms_output.put_line(i || '는 홀수!!'); //if구문이 거짓이면 실행되는 구문 ex) 3는 거짓!!
 
end if; //if구문의 끝
 
END LOOP; LOOP를 종료시킨다는 의미
 
END; //반복문의 끝 부분
cs




- while -


[문법]


1
2
3
4
while 조건

LOOP

처리문;

END LOOP;
cs



while 문은 loop 문과 비슷하지만 while 다음에 조건을 붙여 해당 조건에 만족할 때만 루프를 돌면서 로직을 처리한다.


while 다음에 조건처리를 한 부분만 제외하면 다른 부분은 LOOP 문과 같지만, LOOP문과 달리 vn_cnt값이 9보다 작거나


같은 경우라는 조건을 주었다는 점을 살펴보자.


LOOP문에서는 루프를 빠져 나가는 조건을 주었지만, while 문에서는 루프를 수행하는 조건을 준 것이다.


while문에서도 루프를 돌다가 특정 조건에 부합하면 exit를 써서 루프를 빠져 나올 수 있다.




- while 문을 사용해 구구단 3단을 출력하는 예시 -


1
2
3
4
5
6
7
8
9
10
DECLARE
    vn_base_num NUMBER := 3; //변하지 않는 기본값
    vn_cnt      NUMBER := 1; //3단을 출력해야하므로 1씩 증가하는 숫자
BEGIN
WHILE vn_cnt <= 9     --vn_cnt가 9보다 작거나 같을 때만 반복 
LOOP
    DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || vn_cnt || '=' || vn_base_num * vn_cnt);
    vn_cnt := vn_cnt + 1--vn_cnt 값을 1씩 증가
END LOOP;
END;
cs



출력된 결과값

1
2
3
4
5
6
7
8
9
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
cs


728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

ERD (ER 다이어그램) Cloud  (0) 2019.07.08
MongoDB 문법, SQL과의 비교  (0) 2019.07.08
오라클 변수 선언  (0) 2019.07.03
기본 용어 정리  (0) 2019.06.27
무결성이란?  (0) 2019.06.27
:

오라클 변수 선언

Back-End/Data Base 2019. 7. 3. 11:10
728x90
반응형

* 오라클 변수 선언


1.    declare 변수이름 데이터타입;


declare 변수이름 데이터타입 := 값;


declare 변수이름 데이터타입 default 기본값;



* 데이터 타입 선언 방법


varchar2 (byte 수)

number (자리수)

date

테이블이름%RowType => 특정테이블 행전체타입 (참조변수)

테이블이름.컬럼명%type => 특정테이블의 컬럼타입



ex) 여러개의 변수 선언

declare name varchar2(20);

age number(20) := 50;



* 특정 문장을 실행하기 위한 방법

begin


실행 문장을 작성

ex) dbms_output.put_line(출력내용);

end;




728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

MongoDB 문법, SQL과의 비교  (0) 2019.07.08
오라클 반복문 (for loop, while loop)  (0) 2019.07.03
기본 용어 정리  (0) 2019.06.27
무결성이란?  (0) 2019.06.27
오라클 SQL Develope 다운로드 및 설치  (0) 2019.05.28
:

기본 용어 정리

Back-End/Data Base 2019. 6. 27. 12:20
728x90
반응형

 

 용어


 설명

 Table

 데이터 값들의 집합을 뜻한다. 

 Row

 Table 내에서 한 줄에 해당하는 데이터 값들. (=Tuple 와 동일한 단어) 

 Column

 

 Table에서 데이터가 갖는 속성값. (=attribute와 동일한 단어)


 예시) 상단의 "설명" 이 column에 해당한다.


 Domain

 

 도메인은 하나의 Attirbute가 취할 수 있는 같은 타입의 원자 (Atomic)


 값들의 집합


 Attribute

 

 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.


 속성 (Attribute)는 개체의 특성을 기술한다.


 Tuple

 Table (Relation) 을 구성하는 각각의 행을 뜻한다.

 Cardinality

 도메인에 있는 모든 값들의 갯수 



출처

https://jhkang-tech.tistory.com/6

728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

오라클 반복문 (for loop, while loop)  (0) 2019.07.03
오라클 변수 선언  (0) 2019.07.03
무결성이란?  (0) 2019.06.27
오라클 SQL Develope 다운로드 및 설치  (0) 2019.05.28
19.05.05 데이터베이스 성능  (0) 2019.05.05
:

무결성이란?

Back-End/Data Base 2019. 6. 27. 12:14
728x90
반응형

무결성이란?


무결성이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다.



무결성을 유지하는 방법


대표적으로 사용되는 방법은 중앙 통제에 의한 데이터 갱신으로서, 이 방법은 검증 프로그램을 이용하여 모든 갱신 처리 과정에서 


반드시 검증 단계를 거치도록 통제를 가한다.


검증 프로그램이 무결성을 검증하기 위해 무결성 규정을 사용한다.




 규정이름 : 무결성 규정을 참조할 때 사용하는 식별자


 트리거조건 : 트랜잭션의 접근 유형 및 데이터, 검사할 시기를 명시


 제약조건 : 무결성을 위한 검사조건


 위반조치 : 검사결과 무결성 위반이 발견되었을 때 처리할 조치





 

 -무결성의 종류-


 NULL 무결성 : 릴레이션의 특정속성 값이 NULL이 될 수 없도록 하는 규정


 고유 무결성 : 릴레이션의 특정 속성에 대해서 각 튜플이 갖는 값들이 서로 달라야 한다는 규정


 참조 무결성 : 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 규정 즉 릴레이션은 참조할 수 없는 외래키 값을

  가질 수 없다는 규정


 도메인 무결성 : 특정 속성의 값이, 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정


 키 무결성 : 하나의 테이블에는 적어도 하나의 키가 존재해야 한다는 규정






 

 -무결성 제약조건-


 데이터베이스에 들어있는 데이터의 정확성 (일관성)을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 

 방지하기 위한 제약 조건을 의미함



 개체 무결성


 릴레이션에서 기본키를 구성하는 속성은 Null값이나 중복값을 가질 수 없다.



 참조 무결성


 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다. 

 외래키와 참조하려는 테이블의 기본키는 도메인과 속성개수가 같아야 한다.



728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

오라클 변수 선언  (0) 2019.07.03
기본 용어 정리  (0) 2019.06.27
오라클 SQL Develope 다운로드 및 설치  (0) 2019.05.28
19.05.05 데이터베이스 성능  (0) 2019.05.05
19.05.04 백업과 복구  (0) 2019.05.04
:

오라클 SQL Develope 다운로드 및 설치

Back-End/Data Base 2019. 5. 28. 17:54
728x90
반응형

오라클 SQL Develope 다운로드 및 설치


오라클 사이트 접속

https://www.oracle.com



아래 순서대로 진행



1. SQL DEVELOPER 검색



2. 오라클 SQL Developer Downloads 클릭




3. cmd로 자바 버전을 확인하고 그에 맞는 버전에 Develope를 다운로드.



4. 다운 받은후 압축을 풀고 sqldeveloper.exe 파일을 실행한다.




5. 경로 설정할때 Java jdk까지의 경로를 입력함





6. 환경설정 임포트는 "아니오" 클릭




7. 설치 완료후 "Oracle SQL Developer" 실행 후 +버튼 클릭





8. 아래 처럼 접속 계정과 설치시 지정한 전역 DB이름 입력 후 "접속" 버튼을 누르면 완료.





출처

https://all-record.tistory.com/76


728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

기본 용어 정리  (0) 2019.06.27
무결성이란?  (0) 2019.06.27
19.05.05 데이터베이스 성능  (0) 2019.05.05
19.05.04 백업과 복구  (0) 2019.05.04
19.05.03 테이블의 개념과 정규형  (0) 2019.05.03
: