I'm working on an app that connects to alfresco database.
and I was looking in the tables for the table that contains documents information, and I couldn't find it. I found the table of tasks and other tables.
can anybody help me here?
The two most important tables, IMHO, are alf_node and alf_node_properties. Note, for each node you create you will get a single row in the former, and multiple rows in the latter, depending on the number of metadata associated with your node.
This is because metadata are stored as rows in alf_node_properties with qname_id column holding the information about metadata type.
All files that are stored in Alfresco are stored in what is referred to as the repository. The repository is a logical entity that consists of three important parts:
The physical content files that are uploaded (in {Alfresco_install_dir}/alf_data/contentstore)
The index files created when indexing the uploaded file so it is
searchable
The metadata/properties for the file, which are stored in a
relational database management system (RDBMS).
For more details check Repository concepts
Related
I know that the data in SQL Server is stored in Data pages, But I don't know where the table structure is stored. I came across a statement about TRUNCATE as
"TRUNCATE removes the data by deallocating the data pages.TRUNCATE removes all rows from a table, but the table structure and columns remains"
This made me realize that, table structure, column information is stored outside pages(or Data pages in particular). SO, How/Where is table structure(not data) is stored in SQL server ?
Thank You.
You can access SQL server metadata on INFORMATION_SCHEMA. Following find the most useful views and its content:
INFORMATION_SCHEMA.TABLES: Contains information about the schemas, tables and views in the server.
INFORMATION_SCHEMA.COLUMNS: Full information about the table columns like data type, if it's nullable...
INFORMATION_SCHEMA.VIEWS: Containing information about the views and the code for creating them again.
INFORMATION_SCHEMA.KEY_COLUMN_USAGE: Information about foreign keys, unique keys, primary keys...
To use them, simply query them as they are data views: SELECT * FROM INFORMATION_SCHEMA.TABLES
For a full reference go to MSDN: https://msdn.microsoft.com/en-us/library/ms186778.aspx
There are system tables that store all of the metadata about the database. These tables are not directly queryable (except when using the DAC) but there are numerous views and functions built atop these tables. These are referred to as the Catalog Views.
So, for instance, there is the sys.columns view which describes each column in the database. It's a view built atop the syscolpars table, which is one of the system tables mentioned above that you cannot directly query.
There are also the INFORMATION_SCHEMA views which hespi mentions. These are meant to be a "standard" way of accessing metadata supported by all SQL database systems. Unfortunately, support for them is not 100%, and because they're meant to be cross-platform, they do not tend to reveal advanced features that are product specific.
A SQL Server Database consists of 2 Files (usually):
Master Data File (*.mdf)
Transaction Log File (*.ldf)
)The Master Data File contains: Schema and Data Information
)The Transaction Log Files contains Log Information for Actions in your DB
If you run select * from sys.database_files in your DB it will show you the filenames, location, size, etc..
I am currently rebuilding our Intranet and in the process simplifying the database. Currently I have several tables with BLOB objects for resources. I have an Announcements table with photos or files, a user table with a photo and a marketplace item table with photos. In each case the BLOB object has been separated out into another linked table.
Each of these photo/files is stored (historically) in their own table, and as I've migrated them into one system I've begun to wonder if I wouldn't be better off storing all the files and images in an "Assets" table and then referencing that table rather than having three almost identical tables?
Performance is my main concern, but then readability and maintainability is the reason why I'm rebuilding the Intranet.
as explained in previous posts I have a Postgresql relational database with about 10M rows. I would like to connect Neo4J directly to this existing database if it's possible and define the nodes as being specific columns. I already tried different solutions: first of all I used the batch importer with a CSV file of my database, then I created a flexible script with Groovy (again using a CSV file). These methods work but they imply the creation of a CSV file which isn't ideal in my case. Is there a possibiliy to connect to my DB directly with Neo4j ? Thanks
To link a node in Neo4j to a row in your relational database you typically store the row's primary key into a property on that node. The other way to link from relational db to a graph node you create a unique identifier for the node, store it as a property and create a index on it. Store that identifier in the relational database.
In any case you need some client side logic when going over db boundaries. E.g. you do a graph traversal, return back the primary keys stored in node properties. With those run a select for that pk in your relational db.
Martin Fowler's Nosql destilled has a chapter on polyglott persistence.
In Neo4j you can write unmanaged extension which might act as a integration point.
We have a repository of tables. Around 200 tables, each table can be thousands of rows, all tables are originally in Excel sheets.
Each table has a different scheme. All data is text or numbers.
We would like to create an application that allows free text search on all tables (we define which columns will be searched in each table) efficiently - speed is important.
The main dilemma is which DB technology we should choose.
We created a mock up by importing all tables to MS SQL Server, and creating a full text index over them. The search is done using the CONTAINS keyword. This solution works well for a small number of tables, but it doesn't scale.
We thought about a NoSQL solution, but we don't yet have any experience in it.
Our limitations (which unfortunately I can not effect): Windows servers only. But we can install on them whatever we want.
Thank you.
Check out ElasticSearch! It's a search server based on Apache Lucene and has a clean REST- and JavaScript-based API. Although it's used usually as a search-index for a primary database, it can also be used stand-alone. So you may want to write a backup routine for a few of your tables/data and try it out.
http://www.elasticsearch.org/
http://en.wikipedia.org/wiki/ElasticSearch
Comparison of ElasticSearch and Apache Solr (another Lucene-based search server):
https://docs.google.com/present/view?id=dc6zhtt5_1frfxwfff&pli=1
I have a question about the current implementation of the FILESTREAM type for SQL Server 2008. Say I have a table that stores my documents using FILESTREAM. After a year, I want to archive (move) off a number of these documents to a different server. Is it possible to have FILESTREAM documents on two separate drives? Or do they have to all be on the same drive?
Assuming the answer is yes, can someone post the T-SQL that would be used to create this table that uses two different locations for storage of the FILESTREAM data?
Yes, you can store documents of VARBINARY(MAX) type (with the FILESTREAM storage attribute) on multiple drives. All you need to do is to partition the table across multiple filestream file groups. Each of these file groups may have a filestream container on a different disk.
See here for general information on partitioning: http://msdn.microsoft.com/en-us/library/ms188730.aspx
A great white paper that mentions filestream-specific partitioning: http://msdn.microsoft.com/en-us/library/cc949109.aspx