데이터베이스 11

[SQL] 스토어드 프로시저 (stored procedure)

저장 프로시져(Stored Procedure) : 클라이언트/서버형 데이터베이스 시스템의 고속화 수법의 하나이다. 클라이언트부터 서버의 데이터베이스에 의뢰하는 명령(일반적으로 SQL문) 중 빈번하게 사용하는 일련의 명령군으로 데이터베이스 내부에 저장해 놓은 상태에서 사용한다. (메모리 또는 데이터 지역성 때문에) https://spiderwebcoding.tistory.com/m/7 [MySQL] 스토어드 프로시저(Stored Procedure) 기본 개요 평소 SQL을 사용할 때 일반적인 쿼리문을 자주 사용하게 되는데 특정한 경우 프로시저를 사용하면 편리성면에서 높은 효과를 볼 수 있을 것 같다는 생각이 문득 들었고 또, 자주 사용하는 spiderwebcoding.tistory.com *커서(Curso..

[SQL] 정규화 정리(수정 중)

정규화(Normalization) : 데이터 처리에 관한 특정의 절차를 설정하는 것으로, 일반적으로 테이블 설계 시, 대상 엔티티(Entity)의 구체적인 속성을 고려하여 테이블을 분류하는 작업의 단계를 의미하며, 제1정규화(1NF), 제2정규화(2NF), 제3정규화(3NF), 제3정규화의 변형(BCNF), 제4정규화(4NF), 제5정규화(5NF)로 분류된다. 정규화는 깊어질수록 데이터 중복성이 줄어드는 반면 테이블 접근(Access)속도는 느려진다. 따라서 일반적인 정규화는 속도 및 데이터 중복성의 Trade-off를 고려하여 제3정규화(3NF) 또는 BCNF 단계에서 결정된다. 제1정규형 : 하나의 속성에는 하나의 값을 가져야 한다 제2정규형 : 엔터티의 일반속성은 '주식별자 전체'에 종속적이어야 한..

[데이터베이스] 데이터 모델링 | 엔터티의 분류

가. 유무형에 따른 분류 유형엔터티 : 물리적 형태가 있는 엔터티. 예) 사원, 물품, 강사 등 개념엔터티 : 물리적이 아닌 관리해야 할 개념적 정보로 구분되는 엔터티이다. 예) 조직, 보험상품 등 사건엔터티 : 업무를 수행함에 따라 발생하는 엔터티로서 비교적 발생량이 많으며 각종 통계자료에 이용될 수 있다. 예) 주문, 청구, 미납 등 나. 발생시점에 따른 분류 엔터티01 ---> 엔터티02 ----> 엔터티03 -------------프로세스---------------> 발생시점에 따라 1) 기본엔터티 업무에 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모 역할을 하게 된다. 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 ..

데이터베이스 2023.03.05

[메모] 커뮤니케이션

5. 엔터티의 명명 명명의 원칙들 (1) 업무에서 사용하는 용어의 사용 (2) 약어 사용 하지 않기 (3) 단수 명사 사용 (4) 모든 엔터티에서 유일하게 이름 부여 (5) 엔터티 생성 의미대로 이름 부여 예) 고객이 어떤 제품들을 주문함으로써 발생하는 ‘행위엔터티’에 대해 주문목록이라고도 할 수 있고 고객제품이라고 할 수 있다. 만약 고객제품이라고 하면 ‘고객이 주문한 제품’인지 아니면 ‘고객의 제품’인지 의미가 애매모호해질 수 있다. 엔터티의 이름을 ’업무목적‘에 따라 생성되는 자연스러운 이름을 부여해야 한다. 프로젝트에서의 커뮤니케이션 오류 문제 예방하기! 6. 속성의 명명 (p51) (1) 현업에서 사용하는 이름을 부여하는 것이 가장 중요 (2) 명사형을 이용 (3) 약어 사용 않기 (4) 가능하..

데이터베이스 2023.03.05

[SQL] ROLLUP함수 (Oracle)

소계와 총계에 관한 함수! GROUP BY 이후 나열된 칼럼에 대한 것들이 그룹핑되고 난 후 겉에 있는 칼럼이 하나씩 날리가면서 소계를 해준다. 최종적으로는 총계가 되는 것. ROLLUP의 대상을 소괄호()로 묶어주면 그 소괄호된 묶음이 통으로 빠지고 소계가 된다. *트리거(Trigger) : 데이터베이스 내에서 참조 무결성을 유지하기 위해 특정 프로시저를 자동으로 호출하는 행동이다. 트리거는 사용자가 데이터를 삽입하거나 삭제하는 등과 같은 데이터 변경에 관한 시도를 했을 때 효력을 나타낸다. 트리거는 지정된 어떤 변경이 시도되면, 일련의 행동들을 취하도록 시스템에게 알릴 수 있다. 트리거는 부정확하고, 허가 받지 않았으며, 일관성이 없는 데이터 변경을 방지함으로써 데이터베이스의 무결성을 유지하는데 도움..

[DB] Transaction 트랜잭션

트랜잭션은 "쪼개질 수 없는 업무처리의 단위"를 의미한다. ATM으로 계좌이체를 한다고 생각해보자. 내 계좌의 잔액에서 이체한 금액만큼 빼는 일과, 상대 계좌의 잔액에서 해당 금액만큼 더하는 일은 쪼개어져서는 안된다. 즉 하나의 업무로 함께 진행되어야 하는 일이다. "더이상 쪼갤 수 없다는" 표현 때문에 이를 원자성(Atomicity)을 보장해야 한다라고 얘기한다. 쪼갤 수 없기 때문에 일부만 동작해선 안된다. 부분 작업들 여러개가 모여진 이러한 트랜잭션을 처리하기 위해 데이터베이스는 다음과 같은 기술을 제공한다. 요런거 명령어쓴다. - 롤백(Rollback): 부분 작업이 실패하면 트랜잭션 실행 전으로 되돌린다. - 커밋(Commit): 모든 부분작업이 정상적으로 완료하면 이 변경사항을 한꺼번에 DB에..

데이터베이스 2020.08.17

[MongoDB] 컨트랙트 관련 정보 저장

// 파일명 : dapp_contract01.js var express = require('express'); var router = express.Router(); var Web3 = require('web3'); //geth 네트워크 접속 var url = "http://192.168.99.100:38545"; var w3 = new Web3(new Web3.providers.HttpProvider(url)); //mongodb 사용하기 var MongoClient = require('mongodb').MongoClient //배포하는 account address var EOA1 = '0x6263746d5F3337CE3a3A590321b35E08bF81E3f1' console.log('dapp_con..

[NoSQL] 2020-07-24 강의메모

- NOSQL 설치하기 $ docker search mongo => 설치하고자 하는 이미지 검색 $ docker pull mongo => 이미지 가져오기(도커서버) $ docker images => 가져온 이미지 보기 - 컨테이너 생성 및 구동 (최초1 회) $ docker run --name mg01 -d -p 37017:27017 mongo - 클라이언트 프로그램 설치 https://nosqlbooster.com/ ==== 첫번째 docker 터미널 geth 구동 ======================================= $ docker start eth03 - eth03컨테이너 내부로 진입 $ docker exec -it eth03 bash # cd eth_node1 # geth --n..

데이터베이스 2020.07.24

[MySQL] MySQL, MariaDB 포트번호 메모

한 컴퓨터 내에서 mariaDB와 MySQL을 각각 따로 사용하고 싶다면 '포트 번호'를 다르게 지정하면 된다는 것을 알게됐다. MySQL과 MariaDB는 명확히 구분하면 다른 프로그램이기 때문에 각기 다른 포트에서 실행이 되도록 수정해줘야 한다. MySQL은 3306 포트롤 사용하므로 MariaDB는 임의로 지정한 3307 포트로 변경해보자. https://joalog.tistory.com/52 MariaDB와 MySQL 충돌! 공통점과 차이점!MariaDB를 설치했을 때 파일들을 보았다. MySQL관련된 파일들이 많이 보인다. 왜그런걸까? 분명 MariaDB를 깔았는데... MariaDB란? MariaDB 는 MySQL 의 발전된 형태의 대체제로써, 여기에서 다운로드 받을joalog.tistory...