═══ 1. Disclaimer ═══ Copyright 1995 by Kim Kruse Hansen. All rights reserved. Commercial distribution and/or use is prohibited without written consent by the author. Except when otherwise stated in writing the author provide BlackBoard/2 "as is" without warranty of any kind, either expressed or implied, including , but not limited to , the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of BlackBoard/2 , and the accuracy of its associated documentation is with you. Should BlackBoard/2 or its associated documenation prove defective, you assume the cost of all necessary servicing , repair or correction. In no event will Kim Kruse Hansen be responsible in any way for the behaviour of BlackBoard/2. In no event will Kim Kruse Hansen and or any other party who may redistribute BlackBoard/2 as permitted above, be liable to you for damages, including lost profits or other special ,incidental or consequental damages arising out of the use or inability to use (including but not limitied to loss of data or data being rendered inaccurate or losses sustained by third parties or a failure of the program to operate with any other programs) BlackBoard/2, even if Kim Kruse Hansen has been advised of the possibility of such damages , or for any claim by another party. ═══ 2. Prerequisites ═══ BlackBoard/2 requires DB2/2 1.x and Os/2 2.11 or Os/2 Warp. If you have a database system other than DB2/2 , I can't help and you won't be able to run BlackBoard/2. I currently have no plans to support other database systems than IBM DB2/2. BlackBoard/2 has been tested with DB2/2 at syslevel WRx7015 ,WRx7025. ═══ 3. Introduction ═══ BlackBoard/2 BlackBoard/2 is a PM program designed to ease the design of DB2/2 databases. The program was developed and is being maintained by Kim Kruse Hansen Denmark. If you have suggestions and or questions please feel free to contact me. I can be reached at the following address Kim Kruse Hansen Vestergade 133 B 1,4 8600 Silkeborg Denmark Voice Tlf +45-86802182 If you are on the InterNet I can be reached at : deckkh@inet.uni-c.dk If you are a member of the international Fido network you can get in touch with me using NetMail. My Fido network adress is : 2:236/100.13. New version of this program will be available for download at my FidoNet Boss Node : The Jam BBS 2:236/100 +45-45806383 ═══ 4. Whats new ═══ This section describes whats happended to BlackBoard/2 since the last release. o 25. januar 1995 First beta ═══ 5. How to ═══ To start BlackBoard/2 run BlackB.EXE. It requires the name of the database as a parameter. If you have accepted the default database name start BlackBoard/2 like this : c:\BlackB>BlackB BLACKB If you dont supply the database as a program parameter BlackBoard/2 will present you with a list of the databases available on your workstation. You can also start it from the BlackBoard/2 folder by clicking on the BlackBoard/2 program icon. After an initial copyright message stating my copyright to the product you will enter the project window. Use the right mouse button to popup the context sensitive menu. Select new to create a new project. Projects are defined in the project editor. Here is a snapshot of the project editor : The name of a projects must be unique and can not be edited after creation. When you have created a project in the project editor it will appear in project window. If you double click on it the new window should appear. This is the actual database design window. Again use the right mouse button to invoke a context menu. The screen above shows a project where I have created 2 tables : Customer,Order. The tables were created using the table editor : The only thing in the table editor that perhaps requires a bit of explanation is the check button Foreign Table. When checked this means that the table is part of the current project , but that you only refer to it in your project. Foreign tables are NOT saved , when you save a project. Each table in your project is represented by a rectangle. Within each rectangle some information is displayed about the table. The info in Yellow is the description of the table. The info in green is the actual table name. When you create columns for a table the column names or the column descriptions will also be displayed within the rectangle. Move the tables around the workspace by dragging them to a new position . You can even drag tables between 2 windows. When you do this the dropped table gets the Foreign table attribute automatically.The order table is dependant on the customer table. From the line connecting the 2 tables you can gather some information. o The color of the line shows the desired delete rule between the tables. o The color of the end points shows the cardiality between the tables. o The type of endpoints shows the relationsship between the tables. A square endpoint shows a parent table and a diamond endpoint shows a dependent table. Shown above is the same project as before. This time I have defined a column in the Customer table : custid. Notice the color of the column name. This column is the primary key in the Customer table. In the order table you can also see the Custid column. Again notice the color. (I hope you have a color monitor :-) Columns are created using the column editor : Some of the windows in the column editor requires some explanation. o Foreign name This is only relevant for columns which are part of the primary key for a table. Use this when you want a column to have a differnet name in the dependant tables. o Value set This is for documentation use only. Suppose you have a status column which can contain certain values. Describe all legal values in this window. o User type Use this to define a userdefined datatype. Fx create a type named FIRSTNAME with a definition : char(32). If you later decide that you the definition should have been : char(50) the just redefine FIRSTNAME and the change will be reflected in all other tables where you have used the FIRSTNAME type. Userdefined types have project scope. o Type This window lists all available datatypes including evt. userdefined types. So how did I define the relationship between the Order and the Customer table. I did this by dragging the Order table on top of the Customer table. Put in generel terms you drag the dependant table and drop it on the parent table. On the context menu for the dependant table you will find an entry called keys. If you click on Keys you will enter the Key editor. Shown above is a snapshot of the Key editor. It allows you to define the delete rule and cardiality for a foreign key. When you change any of these settings notice that the changes are reflected in the database design windows by the colours of endpoints and connecting lines. BlackBoard/2 can be customized to display information in various ways. You change the settings by invoking the settings editor : REMEMBER TO SAVE YOUR PROJECT WHEN YOU ARE DONE ═══ 6. Misc info ═══ There is NO protection against 2 or more people editing the same project. Well not in current release anyway. There is NO automatic layout feature. A database reengineering facility is under development but should not be expected to appear in any future freeware versions of BlackBoard/2. ═══ 7. Installation ═══ Since you are reading this you must already have unzipped the BlackB10.ZIP package file. You must place the DLL's contained in BLACKB10.ZIP in a directory in a directory on your LIBPATH. If this is a first time installation you should run the CMD file CreateDB.CMD to create the database that BlackBoard/2 requires to operate. When the database has been created then the database will be automatically binded. The database will be created on drive C with the name BLACKB , if this is not what you want then you should edit CreateDB.CMD. The database can without problems be placed on a remote DB2/2 server. If you want this kind of setup you should run the CreateDB.CMD on your DB2/2 server. On the client workstations accessing the database run the DB2/2 Directory services program Direct.Exe to catalog the database. If any of this causes problems please contact your DB2/2 systems programmer in your organisation. The CMD file DT.CMD creates the BlackBoard/2 folder. ═══ 8. KKHQuery ═══ KKHQuery is meant as a replacement for some of the functionality of the IBM supplied Query Manager. It allows you create a query and run it against a DB2 database. The query will run asyncronously and present the resulting rows of the query are presented in a separate window. At the moment you are only able to run 1 Query at a time. That is you are able to start multiple queries but only 1 of them will complete succesfully ! When you start KKHQuery you will see a copyright message and then you will see a window showing the DB2 databases defined in your system catalog. When you have selected a database and KKHQuery has connected to it you will enter the main query window. Like in BlackBoard/2 KKHQuery operates through context sensitive menues. So just press the right mouse button to define a new query. The query is defined in the statement editor. Press run to run your sql statement. The result of your query is presented in a container like the one shown above. The pushbutton Stop allows you stop a long running query and the pushbutton Show allows you to view a temporary result of a long running query. The SQLCODE and nr of rows will be shown in the status window. To use KKHQuery against a database the package DYNSQL.BND should be bound against the your database. You do this with the SQLBIND program : c:\BlackB>SqlBInd DYNSQL.BND JBUDB999