컴퓨터언어/Database(39)
-
[MissingUsernameError, show dbs] - Mongo를 다룰 때 사소한 실수
1. MissingUsernameError?! ctor [MissingUsernameError]: No username was given 유저로부터 HTML 폼 양식을 통해 입력받은 데이터를 MongoDB에 추가하려고 할 때, 위와 같은 오류가 나왔었다. 이럴 때는 form의 input 중 name 속성을 빠뜨린 것이 있는지 다시 한번 확인하자. 2. 왜 내가 만든 db가 목록에 안뜰까? > show dbs show dbs 명령어를 쳤는데도 내가 새로 만든 Database가 나타나지 않는 것은, 내가 아직 어떠한 데이터도 생성하지 않았기 때문이다. 어서 collection을 생성하러 가자. 3. passport로 로그인 시 자꾸만 원하는 페이지로는 안가고 failureRedirect만 해요! 분명 눈을 ..
2020.07.22 -
Stored Procedure
내장형 SQL이 외부 응용프로그램에 SQL문을 삽입하여 연동시키는 매크로 형태였다면, Stored Procedure는 아예 SQL을 담당하는 부분을 별도로 독립시키고 필요할 때 호출하는 서브루틴 형태이다. 내장형 SQL은 주 프로그램과 같이 존재하기 때문에 메모리 사용률이 나쁘다. 하지만 Stored Procedure는 연속된 SQL 문장을 하나로 모아 서버에 미리 컴파일해서 저장해놓고, 모듈화로 필요시마다 호출하기 때문에 실행시간이 빠르고 유지보수하기에도 좋다.
2020.06.21 -
커서 - 내장형 SQL로 반환되는 단 하나의 튜플을 여러개로 늘리는 반복문
👍 What is Cursor? SQL은 여러 개의 튜플을 다루는 데 반해, C++, JAVA 등 언어는 한 번의 연산의 결과를 하나의 변수에 저장하기 때문에 단 하나의 튜플만 다룰 수 있다. 커서는 SQL이 다른 프로그래밍 언어에 내장될 때의 한계를 해결하고자 나온 일종의 "포인터"이다. 2020/06/21 - [컴퓨터언어/Database] - 내장형(Embedded) SQL - 다른 프로그램 내에 삽입된 SQL 내장형(Embedded) SQL - 다른 프로그램 내에 삽입된 SQL 지금까지의 SQL은 모두 사용자가 명령어를 내리는 즉시 DBMS가 결과를 보여주는, "대화식 SQL"이었다. 하지만 현대 응용프로그램은 데이터베이스와 연동되는 경우가 매우 많기 때문에, 프로그램 구 an-onymous.tis..
2020.06.21 -
내장형(Embedded) SQL - 다른 프로그램 내에 삽입된 SQL
지금까지의 SQL은 모두 사용자가 명령어를 내리는 즉시 DBMS가 결과를 보여주는, "대화식 SQL"이었다. 하지만 현대 응용프로그램은 데이터베이스와 연동되는 경우가 매우 많기 때문에, 프로그램 구동 시 SQL 명령도 같이 내려야 할 필요가 생겼고, 그래서 C, C++, JAVA 등 다른 언어에 SQL문을 삽입된 형태를 "내장형 SQL"이라고 한다. JAVA 같은 언어는 내장형 SQL을 그대로 컴파일 할 수 없기 때문에, "EXEC SQL"을 앞에 붙여 "전처리기"에 의해 먼저 분리컴파일한다. 대화식 SQL은 사용자와 DBMS가 실시간으로 문답하기 때문에 여러 개의 튜플을 반환할 수 있었다. 하지만 내장형 SQL은 다른 언어에서 SQL 명령을 함수의 호출로 실행하고 나서 반환된 값을 하나의 변수에 저장하..
2020.06.21 -
트리거 - 서로 연동된 릴레이션에 연쇄조작을 가해 무결성 확보
👍 What is Trigger? 한 테이블에 CRUD를 가하면, 그와 연관된 다른 테이블 내 데이터에도 당연히 영향을 주게 된다. 그러나 DB는 매우 복잡하고 실무에서 트랜잭션 발생 시 마다 일일이 테이블들을 찾아서 수정한다는 것은 말도 안된다. 이때 연관된 데이터들을 찾아 자동갱신시킴으로써 참조 무결성을 지켜주는 방법이 있는데, 이를 "트리거"라고 한다. 예를 들어, , , 테이블이 있다고 하자. 그리고 테이블에는 새로 입고한 "입고수량"이 있고, 테이블에는 현재 매장에 남은 "재고수량"이 있고, 테이블에는 지금까지 팔린 "판매수량"이 있다고 가정하자. 이 3개의 속성은 모두 긴밀한 관계를 가지고 있다. 입고수량이 곧 재고수량으로 더해지고, 판매수량이 곧 재고수량에서 마이너스되기 때문이다. 이처럼 복..
2020.06.21 -
[SQL] DBA가 DBMS와 대화하는 언어
👍 SQL이란? 사용자의 요구분석에 따라 개념적 설계, 논리적 설계, 물리적 설계를 했다면, 이제는 실제로 DBMS를 이용하여 테이블을 구현할 수 있다. SQL은 DBA(데이터베이스 관리자)가 DBMS를 이용하여 데이터를 처리할 때 사용하는 언어다. SQL을 세부적으로 나누어보면, 인터페이스(상호작용)와 구성요소로 달리 구분할 수 있다. 👊 SQL의 인터페이스에 따른 분류 대화식 SQL DBA가 DBMS 안에서 SQL을 직접 사용하며 정보를 계속 주고받는 방식 내장 SQL 다른 프로그램 안에 삽입되어, 그 프로그램이 사용자의 요청에 따라 DB에 접근할 때 이미 등록된 SQL에 따라 정보를 보여주는 방식 👊 SQL의 구성요소에 따른 분류 DDL(데이터 정의어) DCL(데이터 제어어) DML(데이터 조작어)..
2020.06.18